如何计算一个月有多少个星期一?

解决方案 »

  1.   

    SELECT COUNT(1)
    FROM
      (SELECT TO_CHAR(TRUNC(SYSDATE,'mm')+ROWNUM-1,'day','NLS_DATE_LANGUAGE=American') d
      FROM DUAL
        CONNECT BY ROWNUM<=TO_NUMBER(TO_CHAR(LAST_DAY(SYSDATE),'dd'))
      )
    WHERE trim(d)='monday';
      

  2.   

    public int getWeek(String... val) {
    Calendar calendar = Calendar.getInstance();
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
    if (val == null || val.length == 0)
    calendar.setTime(new Date());
    else
    try {
    Date d = df.parse(val[0]);
    calendar.setTime(d);
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    // System.out.println("是第" + calendar.get(Calendar.WEEK_OF_YEAR) + "周");
    return calendar.get(Calendar.WEEK_OF_MONTH);
    }
      

  3.   

    CREATE OR REPLACE FUNCTION longToChar(value  in number,  format in varchar2) return varchar2 is
                                          
      Result     varchar2(100);
      tempFormat varchar2(100);
    begin
      --'YYYY-MM-DD HH24:MI:SS'
      if format = '' then
        tempFormat := 'YYYY-MM-DD HH24:MI:SS';
      else
        tempFormat := format;
      end if;
      select to_char((select to_date('19700101080000', 'yyyymmddhh24miss') +
                            value / 86400 
                       from dual),
                    tempFormat)    into Result
        from dual;
      return(Result);
    end longToChar;我操没看清题目啊 以为是java呢 这个第一个参数传入某个月最后一天日期,第二个传入WW还是会返回这个日期是这个月的第几周。
      

  4.   

    这个是oracle,也是前一段时间写的