Java编写程序,从键盘输入年、月、日三个变量,输出该日期为该年的第几天。(30分) 题目内容: 编写程序,从键盘输入年、月、日三个变量,输出该日期为该年的第几天。 输入格式:整数 year,month
时间: 2024-10-27 09:07:47 浏览: 48
在Java中,你可以使用`java.time`包下的`DayOfWeek`和`MonthValue`类来计算给定日期是一年中的第几天。首先,需要导入相应的包,然后创建一个`LocalDate`对象,代表用户输入的日期。接下来,获取该日期所在月份的第一天和最后一天,再计算两者之间的天数差并加上输入的日期,即可得到结果。下面是一个简单的示例:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
try {
// 获取用户的输入
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入月份(1-12):");
int month = scanner.nextInt();
System.out.println("请输入日期:");
int day = scanner.nextInt();
// 格式化输入
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy M dd");
LocalDate date = LocalDate.of(year, month, day);
// 计算该日期是一年中的第几天
LocalDate firstDayOfMonth = date.with(TemporalAdjusters.firstDayOfMonth());
int daysInMonth = date.lengthOfMonth(); // 获取该月的实际天数
int dayOfYear = (date.getValue(ChronoField.DAY_OF_YEAR) - firstDayOfMonth.getValue(ChronoField.DAY_OF_YEAR)) + 1;
// 输出结果
System.out.printf("%d-%02d-%02d是%tyeard的第%d天%n", year, month, day, year, dayOfYear);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个程序中,我们先处理了异常,然后通过`DateTimeFormatter`将用户输入转换成`LocalDate`。接着使用`firstDayOfMonth()`获取该月第一天,然后计算出该日期距离年初的天数,并加上本月的第一天到今天的天数。最后,输出结果。
阅读全文