判断周五、每月14号、28号是否是工作日"
public R getFlageDate() throws ParseException {
List<Map<String,String>> result=new ArrayList<Map<String,String>>();
//获取当前周五是否是工作日,如果不是则获取最近一个工作日
List<String> weekList= CalendarUtils.getWeekS();
logger.info("weekList="+weekList);
//判断周五是否是 工作日,如果不是 则获取上一个工作日
if(null!=weekList && weekList.size()>0){
for(String d:weekList){
logger.info("d="+d);
Map<String,String> week5=new HashMap();
week5.put("date",getNeed(d));
week5.put("type","1");
result.add(week5);
}
}
return R.ok().put("weekList",result);
}
public static List<String> getWeekS() throws ParseException {
//获取当前系统年
int year=getYear();
List<String> weeks = new LinkedList<>();
int tongji = 0;
Calendar c = Calendar.getInstance();
//int month=6;
for(int month=1;month<13;month++){
c.set(year, month - 1, 1);
int mountDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd E");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat resultSdf = new SimpleDateFormat("yyyyMMdd");
for (int i=1;i<=mountDay;i++) {
String date1 = year + "-";
if (month < 10) {
date1 += "0" + month + "-";
} else {
date1 += month + "-";
}
if (i < 10) {
date1 += "0" + i;
} else {
date1 += i;
}
String dateStr = sim.format(sdf.parse(date1));
String weekStr = dateStr.substring(11,14);
if ("星期五".equals(weekStr)) {
weeks.add(resultSdf.format(sdf.parse(date1)));
tongji++;
}
}
//data.put("num", tongji);
//data.add(weeks);
}
return weeks;
}
/**
* 判断当前日期是本年第几周
* @param date
* @return
*/
public static int getSysWeek(String date){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Date d=null;
try{
d=format.parse(date);
}catch(ParseException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
Calendar calendar=Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(d);
return calendar.get(Calendar.WEEK_OF_YEAR);
}