import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* Test
* @author
*/
public class Test {
/**
* main
* @param args
*/
public static void main(String[] args) {
getMonday1();
getMonday2();
}
/** 在JDK5没有问题,但在JDK1.4下setFirstDayOfWeek()方法有问题。 */
public static void getMonday1() {
Date date = new Date();
System.out.println(date);
Calendar calendar = new GregorianCalendar();
// 取得本周一
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(calendar.getTime());
// 取得本周日
System.out.println(new Date(calendar.getTime().getTime()
+ (7 * 24 * 60 * 60 * 1000)));
}
/** 在JDK1.4下的解决办法。 */
public static void getMonday2() {
Calendar calendar = new GregorianCalendar();
// 取得本周一
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 2;
dayOfWeek = (dayOfWeek == -1) ? 6 : dayOfWeek;
calendar.add(Calendar.DAY_OF_MONTH, (-1) * dayOfWeek);
System.out.println(calendar.getTime());
}
}