需求:
1.根据生日计算年龄
2.获取输入日期的星期几
3.获取输入日期的当月第一天
4.获取输入日期的当月最后一天
5.判断该年是否是闰年
6.根据整型数表示的年月日,生成日期类型格式
public class Birthday_NowTime {
public static void main(String[] args) throws ParseException {
//根据生日计算年龄
//保存出生日期的date格式
Date d1=new Date();
//现在的日期date格式
Date d2=new Date();
//格式化日期(HH时mm分ss秒)
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
System.out.println("请输入你的生日,格式为:xx年xx月xx日");
Scanner sc=new Scanner(System.in);
String keyDate=sc.next();
//将出生的格式化日期转换成date格式
d1=sdf.parse(keyDate);
//获取出生日期的毫秒
long birthday=d1.getTime();
//获取当前日期的毫秒
long nowTime=d2.getTime();
//获取现在到出生相差的毫秒
long result=nowTime-birthday;
System.out.println("你的年龄是:"+result/1000/60/60/24/365);
System.out.println("请输入一个日期,格式为:xx年xx月xx日");
String inDate=sc.next();
//将输入的字符串转化为date日期
Date d=sdf.parse(inDate);
Calendar c=Calendar.getInstance();
c.setTime(d);
//获取输入日期的星期几
int inDay=c.get(Calendar.DAY_OF_WEEK);
switch (inDay){
case 1:
System.out.println("该天是:星期日");
break;
case 2:
System.out.println("该天是:Monday");
break;
case 3:
System.out.println("该天是:Tuesday");
break;
case 4:
System.out.println("该天是:Wednesday");
break;
case 5:
System.out.println("该天是:Thursday");
break;
case 6:
System.out.println("该天是:Friday");
break;
case 7:
System.out.println("该天是:Saturday");
break;
}
//获取输入日期的当月第一天
int firstDay=c.getActualMinimum(Calendar.DAY_OF_MONTH);
c.set(Calendar.DAY_OF_MONTH,firstDay);
System.out.println("该月第一天是:"+sdf.format(c.getTime()));
//获取输入日期的当月最后一天
int lastDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
c.set(Calendar.DAY_OF_MONTH,lastDay);
System.out.println("该月最后一天是:"+sdf.format(c.getTime()));
//判断该年是否是闰年
int year=c.get(Calendar.YEAR);
if (year%4==0){
System.out.println(year+"是闰年");
}else {
System.out.println(year+"不是是闰年");
}
//根据整型数表示的年月日,生成日期类型格式
System.out.println("请输入一个整型数表示的年月日:");
long ymd=sc.nextLong();
System.out.println(sdf.format(ymd));
}
}
执行结果:
请输入你的生日,格式为:xx年xx月xx日
1999年5月2日
你的年龄是:21
请输入一个日期,格式为:xx年xx月xx日
2020年7月18日
该天是:Saturday
该月第一天是:2020年07月01日
该月最后一天是:2020年07月31日
2020是闰年
请输入一个整型数表示的年月日:
1544662
1970年01月01日
总结:
1.result/1000/60/60/24:这里result表示毫秒,/1000是秒,/60是分,再/60是时,/24是天,/365就是年了。
2.Calendar类的常用方法,可以去API文档里熟悉,运用。