public static List<String> getYearMonthWeekly(String yearStr,String monthStr){
SimpleDateFormat sdfm=new SimpleDateFormat("yyyy-MM");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
List<String> array = new ArrayList<String>();
String dateStr = yearStr+"-"+monthStr+"-1";
Calendar cd=Calendar.getInstance();
try {
//设置日期
cd.setTime(sdfm.parse(dateStr));
cd.setFirstDayOfWeek(Calendar.MONDAY);
int month=cd.get(Calendar.MONTH);
List<String[]> list=new ArrayList<String[]>();
//如果本月第一天不为星期一,表示是上月最后一周延续,所以先计算
if((cd.get(Calendar.DAY_OF_WEEK)-1)!=1){
String[] str=new String[2];
//获取当前星期几
int weekDay=0;
weekDay=cd.get(Calendar.DAY_OF_WEEK)-1;
//如果为0表示星期天,设置为7
if(weekDay==0){
weekDay=7;
}
//减去当前星期几-1,获得本周一是多少号
cd.add(Calendar.DATE,-(weekDay-1));
str[0]=sdf.format(cd.getTime());
//本周一加6,获得本周日是多少号
cd.add(Calendar.DATE,6);
str[1]=sdf.format(cd.getTime());
list.add(str);
//本周日加一,设置为下周开始时间
cd.add(Calendar.DATE, 1);
cd.setTime(cd.getTime());
}
for(int i=0;i<10;i++){
String[] str=new String[2];
//获取当前星期几
int weekDay=0;
weekDay=cd.get(Calendar.DAY_OF_WEEK)-1;
//如果为0表示星期天,设置为7
if(weekDay==0){
weekDay=7;
}
//减去当前星期几-1,获得本周一是多少号
cd.add(Calendar.DATE,-(weekDay-1));
if(month!=cd.get(Calendar.MONTH)){
break;
}
str[0]=sdf.format(cd.getTime());
//本周一加6,获得本周日是多少号
cd.add(Calendar.DATE,6);
str[1]=sdf.format(cd.getTime());
list.add(str);
//本周日加一,设置为下周开始时间
cd.add(Calendar.DATE, 1);
cd.setTime(cd.getTime());
}
for(int i=0;i<list.size();i++){
// System.out.println(list.get(i)[0]+"--------------"+list.get(i)[1]);
array.add(list.get(i)[0]+"~"+list.get(i)[1]);
}
} catch (ParseException e) {
e.printStackTrace();
}
return array;
}
根据所选的year 和 month 获得所有的周开始与结束
最新推荐文章于 2022-04-25 19:22:47 发布