oracle現在の日付を表示するのは数週間目の方法です

2294 ワード

システムの現在の時間は何週間ですか.今年の数週間目です.
 

       
  
select to_char(sysdate,'ww') ,to_char(sysdate,'iw') from dual;
select to_char(sysdate,'ddd') from dual;
select TRUNC(SYSDATE,'MM') from dual;1)

wwのアルゴリズムは毎年1月1日が最初の週から、date+6が毎週末になります
例えば、20050101は第1週の初日であり、第1週の最終日は20050101+6=20050107である
式:週1日目:date+週*7-7週末日:date+週*7-12)
iwのアルゴリズムは月曜日から日曜日まで1週間で、毎年の最初の月曜日が最初の週です.
例えば、20050101は土曜日なのでiwのアルゴリズムでは一昨年の53週、20050103以降が最初の週の始まりです.  
式:週1日目:next_day(date)+週*7-7週末日:next_day(date)+週*7-13)
その他:
A、今日は「今月」の何週目のSELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon"from dual;またはSELECT TO_CHAR(SYSDATE,'W') AS "weekOfMon"from dual;  
B、今日は「今年」の何週目か調べるchar(sysdate,'ww') from dual;またはselect to_char(sysdate,'iw') from dual;
どの年とどの週のどの日を統計しますか.
 
  
 int year=2011;
        int week=1;
        Calendar calFirstDayOfTheYear = new GregorianCalendar(year,
                Calendar.JANUARY, 1);
            calFirstDayOfTheYear.add(Calendar.DATE, 7 * (week-1));

 
            int dayOfWeek = calFirstDayOfTheYear.get(Calendar.DAY_OF_WEEK);

 
            Calendar calFirstDayInWeek = (Calendar)calFirstDayOfTheYear.clone();
            calFirstDayInWeek.add(Calendar.DATE,
                calFirstDayOfTheYear.getActualMinimum(Calendar.DAY_OF_WEEK) - dayOfWeek);
            Date firstDayInWeek = calFirstDayInWeek.getTime();
            System.out.println(year + " " + week + " " + ReportDateUtil.getFromatDay().format(firstDayInWeek));

 
            Calendar calLastDayInWeek = (Calendar)calFirstDayOfTheYear.clone();
            calLastDayInWeek.add(Calendar.DATE,
                calFirstDayOfTheYear.getActualMaximum(Calendar.DAY_OF_WEEK) - dayOfWeek);
            Date lastDayInWeek = calLastDayInWeek.getTime();
            System.out.println(year + " " + week + " " + ReportDateUtil.getFromatDay().format(lastDayInWeek));