用java编写一个程序,职工发薪日是每月的15号,如果15号是周末,则调整为上一个周五。
时间: 2024-12-19 20:23:23 浏览: 8
在Java中,我们可以使用`java.time`包下的`DayOfWeek`和`MonthDay`类来实现这个功能。下面是一个简单的示例程序:
```java
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.MonthDay;
import java.time.temporal.TemporalAdjusters;
public class PaydayCalculator {
public static void main(String[] args) {
MonthDay payday = MonthDay.of(1, 15); // 设置每月的15号作为发薪日
// 获取当前月份和日期
LocalDate currentDate = LocalDate.now();
// 如果15号是周末(周六或周日),调整到上一个工作日(即上周五)
if (currentDate.getDayOfWeek().equals(DayOfWeek.SATURDAY) ||
currentDate.getDayOfWeek().equals(DayOfWeek.SUNDAY)) {
LocalDate adjustedPayday = currentDate.minusWeeks(1)
.with(TemporalAdjusters.previousOrSame(DayOfWeek.FRIDAY));
System.out.println("由于15号是周末,调整后的发薪日为:" + adjustedPayday);
} else {
System.out.println("本月的发薪日是:" + payday.at(currentDate.getMonth()));
}
}
}
```
这个程序首先设定每月15号为发薪日,然后检查今天的日期。如果今天是周六或周日,就将发薪日调整至上一个周五。如果不是周末,就直接显示本月的15号。
阅读全文