- 论坛徽章:
- 0
|
在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码
int x=2007;
int n=10;
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){
case 1:
cal.set(Calendar.DATE,7*(n-2)+ff+7);
break;
case 2:
cal.set(Calendar.DATE,7*(n-2)+ff+6);
break;
case 3:
cal.set(Calendar.DATE,7*(n-2)+ff+5);
break;
case 4:
cal.set(Calendar.DATE,7*(n-2)+ff+4);
break;
case 5:
cal.set(Calendar.DATE,7*(n-2)+ff+3);
break;
case 6:
cal.set(Calendar.DATE,7*(n-2)+ff+2);
break;
case 7:
cal.set(Calendar.DATE,7*(n-2)+ff+1);
break;
}
System.out.println("cal 1:"+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:"+calFirstDayInThisWeek.getTime());
System.out.println("calLastDayInThisWeek:"+calLastDayInThisWeek.getTime());
System.out.println("startDate:"+startDate.getTime()); |
|