我希望能够获取一周的开始日期和结束日期,需要传入一周的数字和年份。例如,如果我传递的周数为 51
,年份为 2011
,它应该返回开始日期为2011年12月18日
,结束日期为2011年12月24日
。
是否有任何方法可以帮助我实现这个功能?
您可以使用以下方法获取一周的第一天和最后一天
void getStartEndOFWeek(int enterWeek, int enterYear){
//enterWeek is week number
//enterYear is year
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.WEEK_OF_YEAR, enterWeek);
calendar.set(Calendar.YEAR, enterYear);
SimpleDateFormat formatter = new SimpleDateFormat("ddMMM yyyy"); // PST`
Date startDate = calendar.getTime();
String startDateInStr = formatter.format(startDate);
System.out.println("...date..."+startDateInStr);
calendar.add(Calendar.DATE, 6);
Date enddate = calendar.getTime();
String endDaString = formatter.format(enddate);
System.out.println("...date..."+endDaString);
}
java.util.Calendar
类。你可以使用public void set(int field, int value)
方法设置年份和周数分别为Calendar.YEAR
和Calendar.WEEK_OF_YEAR
。setFirstDayOfWeek
更改每周的第一天。由日历实例表示的日期将是你的开始日期。只需添加6天即可得到结束日期。Calendar calendar = new GregorianCalendar();
// Clear the calendar since the default is the current time
calendar.clear();
// Directly set year and week of year
calendar.set(Calendar.YEAR, 2011);
calendar.set(Calendar.WEEK_OF_YEAR, 51);
// Start date for the week
Date startDate = calendar.getTime();
// Add 6 days to reach the last day of the current week
calendar.add(Calendar.DAY_OF_YEAR, 6);
// End date for the week
Date endDate = calendar.getTime();