用java程序编写:输入一个年份和这一年中的第几天,求出对应的日期,如果输入错误的数据,能给出错误提示
时间: 2024-04-29 17:25:26 浏览: 76
以下是一个示例代码,可以实现输入一个年份和这一年中的第几天,求出对应的日期的功能。如果输入错误的数据,会给出错误提示。
```java
import java.util.Scanner;
public class DateCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份:");
int year = scanner.nextInt();
System.out.print("请输入这一年中的第几天:");
int dayOfYear = scanner.nextInt();
if (dayOfYear < 1 || dayOfYear > 365 || (dayOfYear == 366 && !isLeapYear(year))) {
System.out.println("输入的天数不正确");
return;
}
int[] daysInMonth = isLeapYear(year) ? new int[]{31,29,31,30,31,30,31,31,30,31,30,31} : new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
int month = 0;
while (dayOfYear > daysInMonth[month]) {
dayOfYear -= daysInMonth[month];
month++;
}
System.out.printf("%d年%d天是%d月%d日\n", year, dayOfYear, month + 1, dayOfYear);
}
/**
* 判断是否为闰年
* @param year 年份
* @return 是否为闰年
*/
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
}
```
代码的基本思路如下:
1. 首先读入年份和天数;
2. 检查天数是否合法,如果不合法则输出错误提示并退出程序;
3. 根据年份是否为闰年,确定每个月的天数;
4. 根据输入的天数,计算出月份和日期;
5. 输出结果。
注意在输出日期时,要将月份加1,因为数组下标是从0开始的。
阅读全文