import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class TestWeek {
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) throws ParseException {
String dateStr = "2011-11-1";
String[] startAndEndDateOfWeek = getWeekStartAndEnd(dateStr);
System.out.println("本周开始日期是:" + startAndEndDateOfWeek[0]);
System.out.println("本周结束日期是:" + startAndEndDateOfWeek[1]);
String[] aaa = TimeZone.getAvailableIDs();
for (String string : aaa) {
// System.out.println(string);
}
}
private static String[] getWeekStartAndEnd(String nowDateStr) {
String[] a = null;
try {
Date nowDate = sdf.parse(nowDateStr);
Calendar nowCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
// nowCalendar.setFirstDayOfWeek(Calendar.MONDAY);
nowCalendar.setTime(nowDate);
//将开始日历和结束日历都初始化为当前选择日期
Calendar startCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
// startCalendar.setFirstDayOfWeek(Calendar.MONDAY);
startCalendar.setTime(nowDate);
Calendar endCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
// endCalendar.setFirstDayOfWeek(Calendar.MONDAY);
endCalendar.setTime(nowDate);
int sourceDayOfWeek = nowCalendar.get(Calendar.DAY_OF_WEEK);
if(sourceDayOfWeek == Calendar.MONDAY) {//星期一(开始日历不变,结束日历加6天)
endCalendar.add(Calendar.DAY_OF_MONTH, 6);
} else if(sourceDayOfWeek == Calendar.TUESDAY) {//星期二(开始日历减1天,结束日历加5天)
startCalendar.add(Calendar.DAY_OF_MONTH, -1);
endCalendar.add(Calendar.DAY_OF_MONTH, 5);
} else if(sourceDayOfWeek == Calendar.WEDNESDAY) {//星期三(开始日历减2天,结束日历加4天)
startCalendar.add(Calendar.DAY_OF_MONTH, -2);
endCalendar.add(Calendar.DAY_OF_MONTH, 4);
} else if(sourceDayOfWeek == Calendar.THURSDAY) {//星期四(开始日历减3天,结束日历加3天)
startCalendar.add(Calendar.DAY_OF_MONTH, -3);
endCalendar.add(Calendar.DAY_OF_MONTH, 3);
} else if(sourceDayOfWeek == Calendar.FRIDAY) {//星期五(开始日历减4天,结束日历加2天)
startCalendar.add(Calendar.DAY_OF_MONTH, -4);
endCalendar.add(Calendar.DAY_OF_MONTH, 2);
} else if(sourceDayOfWeek == Calendar.SATURDAY) {//星期六(开始日历减5天,结束日历加1天)
startCalendar.add(Calendar.DAY_OF_MONTH, -5);
endCalendar.add(Calendar.DAY_OF_MONTH, 1);
} else if(sourceDayOfWeek == Calendar.SUNDAY) {//星期天(开始日历减6天,结束日历不变)
startCalendar.add(Calendar.DAY_OF_MONTH, -6);
} else {
throw new RuntimeException("The date out of a week...");
}
a = new String[2];
System.out.println(startCalendar.getTime());
a[0] = sdf.format(startCalendar.getTime());
a[1] = sdf.format(endCalendar.getTime());
} catch (Exception e) {
e.printStackTrace();
}
return a;
}
}
给定一个日期,计算这个日期所在周的星期一和星期天
最新推荐文章于 2024-05-28 09:25:21 发布