1. 指定日期是周几
/**
* 指定的日期是星期几
*/
public static int getDayOfWeek(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
boolean isFirstSunday = (c.getFirstDayOfWeek() == Calendar.SUNDAY);
int weekDay = c.get(Calendar.DAY_OF_WEEK);
if (isFirstSunday) {
weekDay = weekDay - 1;
if (weekDay == 0) {
weekDay = 7;
}
}
return weekDay;
}
2. 年度第几周
/**
* 指定的日期是第几周
*/
public static int getWeekOfYear(Date d) {
Calendar c = Calendar.getInstance();
// 设置该周第一天为星期一
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setTime(d);
return c.get(Calendar.WEEK_OF_YEAR);
}
3. 周第一天
public static Date getFirstDayOfWeek(int year, int week) {
Calendar cal = Calendar.getInstance();
// 设置年份
cal.set(Calendar.YEAR, year);
// 设置周
cal.set(Calendar.WEEK_OF_YEAR, week);
// 设置该周第一天为星期一
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
return cal.getTime();
}
4. 周最后一天
public static Date getLastDayOfWeek(int year, int week) {
Calendar cal = Calendar.getInstance();
// 设置年份
cal.set(Calendar.YEAR, year);
// 设置周
cal.set(Calendar.WEEK_OF_YEAR, week);
// 设置该周第一天为星期一
cal.setFirstDayOfWeek(Calendar.MONDAY);
// 设置最后一天是星期日
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek() + 5); // Sunday
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
return cal.getTime();
}