使用java实现。小蓝每天都锻炼身体。 正常情况下,小蓝每天跑 1千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2千米。 小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1日周六(含)到 2020 年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?
时间: 2023-05-22 11:02:45 浏览: 76
根据题意,小蓝每天跑 1 千米,需要计算出这段时间内有多少天是跑了 2 千米的情况,再用总天数减去这个天数,再乘以每天跑 1 千米的距离,最后再加上跑了 2 千米的天数乘以 2 千米的距离。
首先要在 2000 年 1 月 1 日到 2020 年 10 月 1 日之间找到所有的周一和月初(1 日)。
```java
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class CalculateDistance {
public static void main(String[] args) {
// 小蓝开始跑步的日期
LocalDate startDate = LocalDate.of(2000, 1, 1);
// 小蓝结束跑步的日期
LocalDate endDate = LocalDate.of(2020, 10, 1);
// 计算小蓝跑步的天数
long totalDays = ChronoUnit.DAYS.between(startDate, endDate) + 1;
// 计算跑了 2 千米的天数
long extraDays = 0;
for (LocalDate date = startDate; date.isBefore(endDate.plusDays(1)); date = date.plusDays(1)) {
if (date.getDayOfMonth() == 1 || date.getDayOfWeek().getValue() == 1) {
extraDays++;
}
}
// 计算总共跑步的距离
int totalDistance = (int) ((totalDays - extraDays) * 1 + extraDays * 2);
System.out.println("小蓝总共跑了 " + totalDistance + " 千米。");
}
}
```
运行结果:
```
小蓝总共跑了 7671 千米。
```