用java编程设int year,month,day分别表示一个日期中的年月日,试编程求 a) 对于任意三个整数,判断其是否为一个合法的日期值。 b) 给定一个日期值,计算若干天后的日期值 c) 如果有两个日期值,计算他们相距的天数。
时间: 2024-05-02 13:19:14 浏览: 84
a) 判断日期是否合法的代码如下:
```
public static boolean isValidDate(int year, int month, int day) {
if (year < 1 || month < 1 || month > 12 || day < 1) {
return false;
}
switch (month) {
case 2:
if (isLeapYear(year)) {
return day <= 29;
} else {
return day <= 28;
}
case 4:
case 6:
case 9:
case 11:
return day <= 30;
default:
return day <= 31;
}
}
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
```
b) 给定一个日期和天数,计算若干天后的日期代码如下:
```
public static LocalDate addDays(LocalDate date, int daysToAdd) {
return date.plusDays(daysToAdd);
}
```
c) 计算两个日期相距天数的代码如下:
```
public static long daysBetween(LocalDate date1, LocalDate date2) {
return ChronoUnit.DAYS.between(date1, date2);
}
```
以上代码使用 Java 8 中的 LocalDate 类来处理日期,需要在文件开头加入以下 import 语句:
```
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
```
阅读全文