3. 从键盘输入你的出生年月日,输入格式要求为:yyyy_mm_dd形式,判断出生年是否为润年,输出出生日是星期几。 用java
时间: 2024-12-22 12:13:02 浏览: 5
在Java中,你可以通过以下几个步骤来实现这个功能:
1. **获取用户输入的日期**:
```java
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的出生日期 (格式: yyyy_mm_dd):");
String inputDate = scanner.nextLine();
```
2. **解析日期并提取年份、月份和日子**:
```java
int year = Integer.parseInt(inputDate.substring(0, 4));
int month = Integer.parseInt(inputDate.substring(5, 7));
int day = Integer.parseInt(inputDate.substring(8, 10));
```
3. **判断闰年**:
```java
// 判断闰年的公式是:四年一闰,百年不闰,四百年再闰
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
```
4. **计算出生日是星期几**:
```java
// 使用Zeller's congruence算法来计算
int century = year / 100; // 转换到世纪
int weekDay = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400 + century + century / 4) % 7;
```
5. **输出结果**:
```java
String[] daysOfWeek = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
System.out.println("您的出生年份是闰年吗? " + (isLeapYear ? "是" : "否"));
System.out.println("您的生日是星期" + daysOfWeek[weekDay]);
```
记得处理可能的输入验证(如检查输入格式是否正确),以及确保输入的是有效的日期。
阅读全文