在ex5类包中创建BirthdayTest.java,实现如下代码功能。 从键盘输入你的生日,格式如右所示:2003-5-29。 功能A:将你的生日从String类型转换成Date类型,再从Date类型转换成Calendar类型。 功能B:获取生日中的“月”,再获取生日中的“日”,并输出:“你的生日是5月29日”。 功能C: 获取当前时间的“月”,再获取当前时间的“日”。并输出:“今天是几月几日。” 功能D: 判断“今天”是不是你的生日,如果是你的生日,输出:“Hi! Today is your birthday. Happy birthday to you!”如果不是你的生日,输出:“Today is not your birthday.” 第2题:
时间: 2023-10-09 20:12:10 浏览: 84
machine-learning-ex5.rar_cs229_cs229 5_machine learning_site:ww
好的,我明白了。下面是代码实现:
```java
package ex5;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class BirthdayTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的生日(格式:2003-5-29):");
String birthdayStr = scanner.nextLine();
scanner.close();
DateFormat dateFormat = new SimpleDateFormat("yyyy-M-d");
Date birthday = null;
try {
birthday = dateFormat.parse(birthdayStr);
} catch (ParseException e) {
System.out.println("生日格式错误,请重新输入!");
return;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(birthday);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.printf("你的生日是%d月%d日\n", month, day);
calendar = Calendar.getInstance();
int todayMonth = calendar.get(Calendar.MONTH) + 1;
int todayDay = calendar.get(Calendar.DAY_OF_MONTH);
System.out.printf("今天是%d月%d日\n", todayMonth, todayDay);
if (month == todayMonth && day == todayDay) {
System.out.println("Hi! Today is your birthday. Happy birthday to you!");
} else {
System.out.println("Today is not your birthday.");
}
}
}
```
以上代码实现了题目所要求的4个功能:
- 功能A:从字符串类型转换为Date类型,再从Date类型转换为Calendar类型;
- 功能B:获取生日中的“月”和“日”;
- 功能C:获取当前时间的“月”和“日”;
- 功能D:判断今天是否是生日,并输出相应的语句。
请注意,本代码中使用了DateFormat和SimpleDateFormat类,它们可以将字符串转换为Date类型,也可以将Date类型转换为字符串。同时,我们还使用了Calendar类,它提供了各种操作日期和时间的方法,比如获取年、月、日、时、分、秒等。
阅读全文