java中怎么判断任意日期是否是工作日的代码
时间: 2023-06-24 09:03:00 浏览: 145
Java计算工作日
判断任意日期是否是工作日,可以通过Java中的Calendar类来实现。具体步骤如下:
1. 创建Calendar对象,设置日期为需要判断的日期。
2. 获取该日期是星期几,如果是星期六或星期日,则为非工作日。
3. 如果是星期一至星期五,则判断是否是法定节假日,如果是,则为非工作日;否则为工作日。
以下是一个简单的示例代码:
```java
import java.util.Calendar;
public class WorkdayChecker {
// 法定节假日列表,可以根据需要自行添加
private static final String[] HOLIDAYS = {
"0101", "0102", "0103", "0404", "0501", "0502", "0503", "0606", "0913", "1001", "1002", "1003", "1004", "1005", "1006", "1007"
};
public static boolean isWorkday(Calendar cal) {
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {
return false;
}
String date = String.format("%02d%02d", cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH));
for (String holiday : HOLIDAYS) {
if (date.equals(holiday)) {
return false;
}
}
return true;
}
public static void main(String[] args) {
// 判断2022年元旦是否是工作日
Calendar cal = Calendar.getInstance();
cal.set(2022, Calendar.JANUARY, 1);
System.out.println(isWorkday(cal)); // false
// 判断2022年1月3日是否是工作日
cal.set(2022, Calendar.JANUARY, 3);
System.out.println(isWorkday(cal)); // true
}
}
```
在代码中,我们定义了一个`isWorkday`方法来判断指定日期是否是工作日。在方法中,我们首先获取该日期是星期几,如果是星期六或星期日,则为非工作日;否则再判断是否是法定节假日,如果是,则为非工作日;否则为工作日。
在主函数中,我们分别测试了2022年元旦和2022年1月3日是否是工作日。可以看到,输出结果与预期相符。
阅读全文