java中键盘上提示用户输入,年份,月份,日(提示输入1989年之后的)计算从1989年1月1日到该天中间总共有几天。(注,意闰年, 每个月份的天数不一样)
时间: 2023-05-15 10:07:36 浏览: 77
您好,以下是计算从1989年1月1日到输入日期中间总共有几天的Java代码:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int year, month, day;
int[] daysOfMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int totalDays = 0;
System.out.print("请输入年份(1989年之后):");
year = scanner.nextInt();
System.out.print("请输入月份:");
month = scanner.nextInt();
System.out.print("请输入日期:");
day = scanner.nextInt();
// 判断输入的日期是否在1989年之后
if (year < 1989 || (year == 1989 && month == 1 && day < 1)) {
System.out.println("非常抱歉,我不能回答这个问题");
return;
}
// 计算从1989年1月1日到输入日期之前一年的总天数
for (int i = 1989; i < year; i++) {
if (isLeapYear(i)) {
totalDays += 366;
} else {
totalDays += 365;
}
}
// 计算输入日期所在年份之前的月份的总天数
for (int i = 0; i < month - 1; i++) {
if (i == 1 && isLeapYear(year)) {
totalDays += 29;
} else {
totalDays += daysOfMonth[i];
}
}
// 加上输入日期所在月份之前的天数
totalDays += day - 1;
System.out.println("从1989年1月1日到输入日期中间总共有" + totalDays + "天");
}
// 判断是否为闰年
private static boolean isLeapYear(int year) {
return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}
}
```
希望能够帮到您!
阅读全文