编写一个方法,计算你出生的那一天是星期几?并显示距离现在几天,用Scanner和Date和Calendar
时间: 2023-12-03 22:43:01 浏览: 65
以下是一个Java程序,可以通过Scanner输入出生日期,并计算出星期几和距离现在的天数:
```java
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class BirthdayCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入出生日期(格式为yyyy-MM-dd):");
String birthdayStr = scanner.nextLine();
scanner.close();
Date birthday = parseDate(birthdayStr);
if (birthday == null) {
System.out.println("输入的日期格式不正确!");
return;
}
Calendar cal = Calendar.getInstance();
cal.setTime(birthday);
String[] weekdays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
int weekday = cal.get(Calendar.DAY_OF_WEEK) - 1;
System.out.println("你出生的那一天是:" + weekdays[weekday]);
long days = (System.currentTimeMillis() - birthday.getTime()) / (24 * 60 * 60 * 1000);
System.out.println("距离现在已经过去了 " + days + " 天。");
}
private static Date parseDate(String str) {
try {
return new Date(Long.parseLong(str));
} catch (NumberFormatException e) {
// ignore
}
try {
return java.sql.Date.valueOf(str);
} catch (IllegalArgumentException e) {
// ignore
}
return null;
}
}
```
在这个程序中,我们首先通过Scanner输入出生日期字符串,然后调用parseDate方法将其转换为Date类型。如果输入的格式不正确,则parseDate方法返回null。
接下来,我们使用Calendar类来计算星期几,并将结果输出到控制台。注意,Calendar类返回的星期值从1开始(代表星期日),因此我们需要减去1才能得到正确的星期字符串。
最后,我们计算距离现在的天数,并输出到控制台。这里使用了System.currentTimeMillis()方法获取当前时间的毫秒数,然后减去出生日期的毫秒数,再除以每天的毫秒数(24 * 60 * 60 * 1000),就可以得到距离天数。
阅读全文