java键盘上提示用户输入,年份,月份,日(提示输入1989年之后的),计算从1989年1月1日到该天中间总共有几天。(注意闰年,每个月份的天数不一样)
时间: 2023-05-17 11:05:49 浏览: 83
以下是 Java 代码,可以实现您的需求:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份(1989年之后):");
int year = scanner.nextInt();
System.out.print("请输入月份:");
int month = scanner.nextInt();
System.out.print("请输入日:");
int day = scanner.nextInt();
int totalDays = 0;
for (int i = 1989; i < year; i++) {
if (isLeapYear(i)) {
totalDays += 366;
} else {
totalDays += 365;
}
}
for (int i = 1; i < month; i++) {
totalDays += getDaysOfMonth(year, 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;
}
private static int getDaysOfMonth(int year, int month) {
int[] days = {31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
return days[month - 1];
}
}
```
这段代码会提示用户输入年份、月份和日,然后计算从1989年1月1日到该天中间总共有多少天。其中,isLeapYear() 方法用于判断是否为闰年,getDaysOfMonth() 方法用于获取某个月份的天数。
阅读全文