根據時間得到該時間是該年第幾周:
select to_number(to_char(to_date('2010-01-12 00:00:00','yyyy-mm-dd hh24:mi:ss'),'fmww')) from dual;
2023年1月12日屬於2023年第2周
select to_number(to_char((sysdate),'fmww')) from dual;
判斷當前時間屬於當前年第幾周
以上情況只是把每年的1月1日作為第一天,如同這個oracle語句的效果:
select to_char(sysdate,'iw') from dual
按照國際標準是吧每年第一周的星期一作為這一年的開頭:
select to_char(sysdate,'ww') from dual
根據第幾周的到時間區間:
1>a跨年:
dateformat df=new ******dateformat("yyyy-mm-dd");
calendar calfirstdayoftheyear = new gregoriancalendar(2010,
calendar.january, 1);
calfirstdayoftheyear.add(calendar.date, 7 * (5-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(2010 + "年第" + 5 + "周的第一天是" + df.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(2010 + "年第" + 5 + "周的第一天是" + df.format(lastdayinweek));
-----------------------------
2023年第5周的第一天是2010-01-24
2023年第5周的最後一天是2010-01-30
1>b跨年:
dateformat df=new ******dateformat("yyyy-mm-dd");
int x=2010;
int n=53;
calendar cal = new gregoriancalendar(x, calendar.january, 1);
int ff=cal.get(calendar.day_of_week);
int week=cal.get(calendar.week_of_year);
system.out.println("week:"+week);
system.out.println("ff:"+ff);
switch(ff)
system.out.println("cal 1:"+df.format(cal.gettime()));
int dayofweek = cal.get(calendar.day_of_week);
system.out.println("dayofweek :"+dayofweek);
calendar calfirstdayinthisweek = (calendar) cal.clone();
calfirstdayinthisweek.add(calendar.date, cal.getactualminimum(calendar.day_of_week)-dayofweek);
calendar callastdayinthisweek = (calendar) cal.clone();
callastdayinthisweek.add(calendar.date,cal.getactualmaximum(calendar.day_of_week)-dayofweek);
date startdate=calfirstdayinthisweek.gettime();
date enddate=callastdayinthisweek.gettime();
system.out.println("calfirstdayinthisweek:"+df.format(calfirstdayinthisweek.gettime()));
system.out.println("callastdayinthisweek:"+df.format(callastdayinthisweek.gettime()));
system.out.println("startdate:"+df.format(startdate.gettime()));
---------------------------------
week:1
ff:6
cal 1:2010-12-31
dayofweek :6
calfirstdayinthisweek:2010-12-26
callastdayinthisweek:2011-01-01
startdate:2010-12-26
2>不跨年:
long onedate = 1000l * 3600 * 24;
******dateformat format = new ******dateformat( "yyyy-mm-dd ");
calendar cal = calendar.getinstance();
cal.setfirstdayofweek(calendar.monday);
cal.set(calendar.year, 2005);
//最後一周
cal.set(calendar.day_of_year, cal.getactualmaximum(calendar.day_of_year));
date end = cal.gettime();
cal.set(calendar.day_of_week, calendar.monday);
date start = cal.gettime();
system.out.print( "2023年最後一周區間: " + format.format(start));
system.out.println( "-- " + format.format(end) + " 共 " + ((end.gettime() - start.gettime()) / onedate + 1) + "天 ");
//第一周
cal.set(calendar.day_of_year, 1);
cal.set(calendar.year, 2006);
start = cal.gettime();
cal.set(calendar.day_of_week, calendar.sunday);
end = cal.gettime();
system.out.print( "2023年第一周區間: " + format.format(start));
system.out.println( "-- " + format.format(end) + " 共 " + ((end.gettime() - start.gettime()) / onedate + 1) + "天 ");
//第n周
cal.set(calendar.day_of_week, calendar.monday);//需要先設定星期
cal.set(calendar.week_of_year, 20);
start = cal.gettime();
cal.set(calendar.day_of_week, calendar.sunday);
end = cal.gettime();
system.out.print( "2023年第20周區間: " + format.format(start));
system.out.println( "-- " + format.format(end) + " 共 " + ((end.gettime() - start.gettime()) / onedate + 1) + "天 ");
--------------------------------------
2023年最後一周區間: 2005-12-26 -- 2005-12-31 共 6天
2023年第一周區間: 2006-01-01 -- 2006-01-01 共 1天
2023年第20周區間: 2006-05-08 -- 2006-05-14 共 7天
[b]ps:非原創,素材來自網路.[/b]
根據日期計算屬於第幾周 週日是一周的第一天
根據 日期計算屬於第幾周,見 重點是紅色加粗 如果日期是下一年的第一周的時候的解決方案,如果誰有更好的方法,請不吝賜教 根據日期計算屬於第幾周 週日是一周的第一天 param date 格式 yyyy mm dd disp 0 返回yyyyww 1 返回yyyy年ww周 throws parseex...
判斷當前時間是週幾,及本年的第幾周
import datetime import calendar 獲取當天日期值 currentdate datetime.date.today print currentdate year currentdate.year month currentdate.month day currentdat...
vc 根據系統時間得到今後一周日期
最近在專案中需要動態用到當日起最近一周的日期,小小的要求,用時才發現找不到現成的簡便方法。自己便動手寫了乙個簡單的函式,在此記錄,也給有需要的朋友參考。如下 cstring date one,date two,date three,date four,date five,date six,date ...