用java 编写,根据传入的Date格式输出当前日期的第一个工作日,法定节假日不属于工作日
时间: 2023-03-20 18:02:46 浏览: 85
java计算工作时间除去节假日以及双休日
5星 · 资源好评率100%
你好,根据你的要求,我会回答你的问题。
以下是Java代码,可用于输出当前日期的第一个工作日(法定节假日不属于工作日):
```
import java.util.Calendar;
import java.util.Date;
public class FirstWorkday {
public static void main(String[] args) {
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// 循环找到第一个工作日
while (true) {
// 获取当前日期的星期几
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
// 判断当前日期是否为周六或周日或法定节假日
if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY || isHoliday(calendar)) {
// 如果是周六或周日或法定节假日,则将日期加1天
calendar.add(Calendar.DAY_OF_MONTH, 1);
} else {
// 如果是工作日,则输出日期并结束循环
System.out.println(calendar.getTime());
break;
}
}
}
// 判断指定日期是否为法定节假日
private static boolean isHoliday(Calendar calendar) {
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
// 这里需要根据实际情况自行实现法定节假日的判断逻辑,以下只是示例代码
if (month == 1 && day == 1) {
return true; // 元旦节
} else if (month == 5 && day == 1) {
return true; // 劳动节
} else if (month == 10 && (day == 1 || day == 2 || day == 3 || day == 4 || day == 5 || day == 6 || day == 7)) {
return true; // 国庆节
} else {
return false;
}
}
}
```
该代码会循环判断当前日期是否为周六或周日或法定节假日,如果是则将日期加1天,直到找到第一个工作日为止。请注意,这里的法定节假日判断逻辑仅为示例代码,如需实际应用需根据实际情况进行修改。
阅读全文