Browse Source

20210816工作日

tall3
zy_Java 4 years ago
parent
commit
923ab85429
  1. 4
      signin/src/main/resources/application.yml
  2. 1
      util/src/main/java/com/ccsens/util/cron/NatureConstant.java
  3. 21
      util/src/main/java/com/ccsens/util/cron/NatureToDate.java
  4. 32
      util/src/test/java/com/ccsens/util/DateTest.java

4
signin/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: prod
include: util-prod,common
active: dev
include: util-dev,common

1
util/src/main/java/com/ccsens/util/cron/NatureConstant.java

@ -57,5 +57,6 @@ public class NatureConstant {
public static final String WORKDAY_MONTH = "每月最后一个工作日";
public static final String WORKDAY_WEEK = "每周最后一个工作日";
public static final String WORKDAY_YEAR = "每年最后一个工作日";
}

21
util/src/main/java/com/ccsens/util/cron/NatureToDate.java

@ -154,9 +154,11 @@ public class NatureToDate {
//每周最后一个工作日
getLastWorkdayByWeek(taskDates,startDate, endDate);
return taskDates;
}else if(StringUtil.isMatch(nature, NatureConstant.WORKDAY_YEAR)){
getLastWorkdayByYear(taskDates,startDate, endDate);
return taskDates;
}
return null;
}
@ -197,6 +199,23 @@ public class NatureToDate {
calendar.set(Calendar.DAY_OF_MONTH, 1);
}
}
/**
* 获取每年最后一个工作日
*/
private static void getLastWorkdayByYear(List<CronConstant.TaskDate> taskDates, Date startDate, Date endDate) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
while (calendar.getTime().getTime() < endDate.getTime()) {
//获取开始时间
Date start = calendar.getTime();
int last = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
calendar.set(Calendar.DAY_OF_YEAR, last);
//获取当年最后一天
Date end = calendar.getTime();
getLastWorkday(taskDates,start,end);
calendar.add(Calendar.DAY_OF_YEAR, 1);
}
}
/**
* 获取指定时间范围内的最后一个工作日

32
util/src/test/java/com/ccsens/util/DateTest.java

@ -153,7 +153,7 @@ public void isOverDay() { // 指定时间判断是否是双休日
Date s = new Date(1628148817000L);
Date e = new Date(1633851217000L);
DateFormat df = new SimpleDateFormat("MM-dd");
DateFormat df = new SimpleDateFormat("yy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(s);
while (calendar.getTime().getTime() < e.getTime()) {
@ -170,21 +170,33 @@ public void isOverDay() { // 指定时间判断是否是双休日
// calendar.set(Calendar.DAY_OF_MONTH, 1);
// System.out.println(df.format(calendar.getTime()));
// Date start = calendar.getTime();
// calendar.add(Calendar.WEEK_OF_YEAR, 1);
// calendar.set(Calendar.DAY_OF_WEEK, 1);
// Date end = calendar.getTime();
// //获取当月最后一个工作日
// isHodliDays(taskDates,start,end);
//
// System.out.println(df.format(calendar.getTime()));
// calendar.add(Calendar.DAY_OF_MONTH, 1);
// System.out.println(df.format(calendar.getTime()));
// System.out.println("====================================");
System.out.println(df.format(calendar.getTime()));
Date start = calendar.getTime();
calendar.add(Calendar.WEEK_OF_YEAR, 1);
calendar.set(Calendar.DAY_OF_WEEK, 1);
Date end = calendar.getTime();
//获取当月最后一个工作日
isHodliDays(taskDates,start,end);
int last = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
calendar.set(Calendar.DAY_OF_YEAR, last);
Date end = calendar.getTime();
System.out.println(df.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.DAY_OF_YEAR, 1);
System.out.println(df.format(calendar.getTime()));
System.out.println("====================================");
// System.out.println(df.format(calendar.getTime()));
// isHodliDays(taskDates,start,end);
}
System.out.println(taskDates);
}
}
Loading…
Cancel
Save