1. 请使用日期时间相关的API,计算出一个人已经出生了多少年,再转换为多少天(一年365天)。
提醒:因为Scanner 在junit种无法键盘录入 所有代码写在main方法种
@Test
public void yearsOfBirth() throws ParseException {
//1. 请使用日期时间相关的API,计算出一个人已经出生了多少年,再转换为多少天(一年365天)。
//java 8之前
// Scanner scan=new Scanner(System.in);
// System.out.println("请输入你的出身年月日:(2001-1-1)");
// String birthdayStr= scan.next();
// SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
// Date birthday= sdf.parse(birthdayStr);
// Calendar c=Calendar.getInstance();
// c.setTime(birthday);
// int year=c.get(Calendar.YEAR);
// Calendar c2=Calendar.getInstance();
// int year2=c2.get(Calendar.YEAR);
// Date now=new Date();
// System.out.println("你已经出生了"+(year2-year)+"年");
// int days=(int)((now.getTime()-birthday.getTime())/(1000*60*60*24));
// System.out.println("活了"+days+"天");
//Java 8
//将字符串转换为日期 Date格式
LocalDate now=LocalDate.now();
Scanner scan=new Scanner(System.in);
System.out.println("请输入你的出身年月日:(2001-1-1)");
String birthdayStr= scan.next();
DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate birthdayDate = LocalDate.parse(birthdayStr, dtf);
int yearBirthday = birthdayDate.get(ChronoField.YEAR);
int years=now.get(ChronoField.YEAR)-yearBirthday;
System.out.println("你活了"+years+"年");
long nowDays = now.toEpochDay();
long days=nowDays-birthdayDate.toEpochDay();
System.out.println("你活了"+days+"天");
}
2. 获取当前的日期,并把这个日期转换为指定格式的字符串 如2088-08-08 08:08:08
@Test
public void conversionDate(){
// 2. 获取当前的日期,并把这个日期转换为指定格式的字符串
// 如2088-08-08 08:08:08
// java 8之前
Date nowDate=new Date();
SimpleDateFormat sdt=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate= sdt.format(nowDate);
System.out.println(strDate);
//Java 8之后
LocalDateTime now=LocalDateTime.now();
DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String str=dtf.format(now);
System.out.println(str);
}
3. 判断2018年2月14日是星期几
@Test
public void judgeDayOfTheWork(){
// 3. 判断2018年2月14日是星期几
// Java 8 之前
Calendar c=Calendar.getInstance();
c.set(2018,1,14);
int days=c.get(Calendar.DAY_OF_WEEK);// 周日是 1 周一是 2
System.out.println(days);
//Java 8之后
LocalDate date=LocalDate.of(2018,2,14);
int dayOfWeek = date.get(ChronoField.DAY_OF_WEEK);
System.out.println("这一天是星期"+dayOfWeek);
}