vue 判断某个时间小于当前时间 & 判断是不是假期

1、vue 判断某个时间小于当前时间

<view v-if="new Date().getTime()>new Date(user.allowTime).getTime()"> 显示 </view>

 

2、有个需求要判断是否是工作日

有些开源的已经停了,有的虽然访问免费但是访问次数受限需要付费才可以解除限制。

采取配置方式,每年假日办公布假期和调休日期后,加到配置文件中

 

 

 

#######法定节假日日期#######
2022-01-01
2022-01-02
2022-01-03
2022-01-31
2022-02-01
2022-02-02
2022-02-03
2022-02-04
2022-02-05
2022-02-06
2022-04-03
2022-04-04
2022-04-05
2022-04-30
2022-05-01
2022-05-02
2022-05-03
2022-05-04
2022-06-03
2022-06-04
2022-06-05
2022-09-10
2022-09-11
2022-09-12
2022-10-01
2022-10-02
2022-10-03
2022-10-04
2022-10-05
2022-10-06
2022-10-07
2023-01-01
2023-01-02
#######调休加班日期#######
2022-01-29
2022-01-30
2022-04-02
2022-04-24
2022-05-07
2022-10-08
2022-10-09

public class HolidayUtils {
/**
* 法定节假日
*/
static List<String> holiday = new ArrayList<>();
/**
* 调休上班日
*/
static List<String> extraWorkDay = new ArrayList<>();
/**
* 法定节假日标识字符串
*/
private static final String HOLIDAY_FLAG_STRING = "#######法定节假日日期#######";
/**
* 调休加班标识字符串
*/
private static final String EXTRAWORKDAY_FLAG_STRING = "#######调休加班日期#######";

/**
* 初始化节假日和调休
*/
public void initHolidayAndExtraWorkDay() throws IOException {
//方式二 利用FileUtils将ClassPathResource.getInputStream 得到的输入流复制到临时文件中
Resource resource = new ClassPathResource("holiday.txt");
InputStream inputStream = resource.getInputStream();
File tempFile = File.createTempFile("temp", ".txt");
FileUtils.copyInputStreamToFile(inputStream, tempFile);
String s = FileUtils.readFileToString(tempFile, StandardCharsets.UTF_8);

String[] split = s.split("\r\n");
//方式一, 手动编写文件读取方法
//List<String> list = readTxtFile("holiday.txt");
List<String> list = Arrays.asList(split);
//定义起始下标
int startIndex = 0;
//定义结束下标
int endIndex = 0;
startIndex = list.indexOf(HOLIDAY_FLAG_STRING);
endIndex = list.indexOf(EXTRAWORKDAY_FLAG_STRING);
List<String> holidayList = list.subList(startIndex + 1, endIndex);
List<String> initExtraWorkDay = list.subList(endIndex + 1, list.size());
//初始化节假日
holiday.addAll(holidayList);
//初始化额外加班日
extraWorkDay.addAll(initExtraWorkDay);
}

/**
* 判断是否是工作日
* 法定工作日: 调休加班日 + 非法定节假日 + 平时工作日(周1~5)
*
* @param time 当前时间(毫秒数)
* @return true: 工作日, false: 节假日
* @throws IOException
*/
public Boolean isWorkingDay(long time) throws IOException {
LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneOffset.of("+8"));
String formatTime = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
initHolidayAndExtraWorkDay();
//是否加班日
if (extraWorkDay.contains(formatTime)) {
return true;
}
//是否节假日
if (holiday.contains(formatTime)) {
return false;
}
//如果是1-5表示周一到周五 是工作日
DayOfWeek week = dateTime.getDayOfWeek();
if (week == DayOfWeek.SATURDAY || week == DayOfWeek.SUNDAY) {
return false;
}
return true;
}

/**
*
* @param time
* @return 0工作日、1节假日、2周末
* @throws IOException
*/
public Integer getDay(String time) throws IOException {

LocalDateTime dateTime=LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
dateTime.plusHours(24);
String formatTime = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
initHolidayAndExtraWorkDay();
//是否加班日
if (extraWorkDay.contains(formatTime)) {
return 0;
}
//是否节假日
if (holiday.contains(formatTime)) {
return 1;
}
//如果是1-5表示周一到周五 是工作日
DayOfWeek week = dateTime.getDayOfWeek();
if (week == DayOfWeek.SATURDAY || week == DayOfWeek.SUNDAY) {
return 2;
}
return 0;
}

}
 

 

posted @ 2022-05-10 17:19  mabiao008  阅读(1214)  评论(0编辑  收藏  举报