Java 如果从1990年1月1日开始,三天打鱼,两天晒网,那么2016年1月1日是晒网还是打鱼?请编写程序运行求证。
时间: 2024-05-10 10:21:16 浏览: 111
根据题意,一共经过了26年,其中打鱼日数为:365×26÷5=1892,晒网日数为:365×26×3÷5=1135。从1990年1月1日开始算起,假设第一天是打鱼,那么到2016年1月1日经过的天数为:365×26+6=9496。因为1892÷5=378 余 2,所以前378个五天周期都是打鱼,第379个五天周期是第一个晒网周期,第380个五天周期是第二个晒网周期,因此2016年1月1日是晒网。
Java代码如下:
```java
import java.time.LocalDate;
public class FishOrSun {
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(1990, 1, 1);
LocalDate endDate = LocalDate.of(2016, 1, 1);
int fishDays = 0;
int sunDays = 0;
while (startDate.isBefore(endDate)) {
int dayOfWeek = startDate.getDayOfWeek().getValue();
if (dayOfWeek <= 3) {
fishDays++;
} else {
sunDays++;
}
startDate = startDate.plusDays(1);
}
int period = fishDays / 5;
if (period % 2 == 0) {
System.out.println("2016年1月1日是打鱼");
} else {
System.out.println("2016年1月1日是晒网");
}
}
}
```
阅读全文