获取当年所有的周五的工作日日期

判断周五、每月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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值