设int year,month,day分别表示一个日期中的年月日,试使用java编程求 1.对于任意三个整数,判断其是否为一个合法的日期值。 2.给定一个日期值,计算若干天后的日期值 3.如果有两个日期值,计算他们相距的天数。
时间: 2024-02-12 17:07:17 浏览: 125
1. 判断日期是否合法的Java代码:
```java
public static boolean isLegalDate(int year, int month, int day) {
if (year < 1 || month < 1 || month > 12 || day < 1) return false;
int maxDays = 31;
switch (month) {
case 4:
case 6:
case 9:
case 11:
maxDays = 30;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
maxDays = 29;
} else {
maxDays = 28;
}
break;
}
return day <= maxDays;
}
```
2. 计算若干天后的日期值的Java代码:
```java
public static String calculateDateAfterDays(int year, int month, int day, int days) {
LocalDate date = LocalDate.of(year, month, day);
date = date.plusDays(days);
return date.toString();
}
```
3. 计算两个日期值相距的天数的Java代码:
```java
public static long daysBetween(int year1, int month1, int day1, int year2, int month2, int day2) {
LocalDate date1 = LocalDate.of(year1, month1, day1);
LocalDate date2 = LocalDate.of(year2, month2, day2);
return ChronoUnit.DAYS.between(date1, date2);
}
```
以上三个方法分别实现了判断一个日期是否合法、计算若干天后的日期值和计算两个日期值相距的天数。
阅读全文