请用Java语句(分支结构)完成: 通过键盘输入某年某月某日,计算并输出这一天是这一年的第几天。例如,2021年3月5日是这一年的第64天。
时间: 2024-09-23 18:02:39 浏览: 58
你可以使用Java的`Scanner`类获取用户输入,然后使用一个循环来计算日期。这里是一个简单的示例,假设月份是从0开始计数的,并考虑了闰年的规则:
```java
import java.util.Scanner;
public class DateCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 获取用户输入
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入月份(从0开始):");
int month = scanner.nextInt();
System.out.println("请输入日期:");
int day = scanner.nextInt();
// 判断是否为闰年
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
// 计算天数
int daysInMonth = getDaysInMonth(month, isLeapYear);
int totalDays = (isLeapYear ? 366 : 365); // 考虑闰年情况
for (int i = 0; i < month; i++) {
totalDays += daysInMonth[i];
}
totalDays += day; // 加上当前日期
// 输出结果
System.out.printf("%d年%02d月%02d日是这一年的第%d天.\n", year, month + 1, day, totalDays);
}
// 动态获取每个月的天数,包括闰年
private static int[] getDaysInMonth(int month, boolean isLeapYear) {
int[] daysInMonth = {0, 31, isLeapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
return daysInMonth;
}
}
```
在这个程序中,我们首先获取用户输入的年、月、日,然后判断该年是否为闰年。接着根据月份动态计算前几个月的总天数,并加上当前的日期。
阅读全文