利用DateFormat制作我在人间凑数的日子
根据视频自学总结.
分析
计算凑数日子,总的来说需要知道天,简单扩展为 多少年 多少月 多少日. 简单的减法,现在的日子减去你出生的日子,正常来说日期之间是不能直接减的,所以要把他们换成同一个可以进行四则运算的数值.(毫秒数应为long类型)
你在人间凑数的毫秒数=现在的时间转换为毫秒数-出生时的毫秒数
你在人间凑数的毫秒数/1000=秒
你在人间凑数的秒/60=分钟
.
.
.
.
细节解析:
1.首先获取出生日期:使用Scanner类中的next方法,该方法可以获取从键盘输入的String类,获取出生日期.
2.使用DateFormat类中的方法,将字符串类型的出生日期转换为Date格式的出生日期
//使用SimpleDateFormat方法(用给定的模式和日期符号构造 SimpleDateFormat)
//应友情提示用户输入日期的方式,yyyy-MM-dd,中的间隔符号可以切换为其他.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date brithdayDate = sdf.parse(birthdayDateString);//会出现异常,需要抛出.
//DateFormat方法中的parse,可以用来解析sdf中的日期
3.把Date格式的出生日期转换为毫秒级
//getTime();
long brithdayDateTime = brithdayDate.getTime();
4.获取当前时间的毫秒级
//getTime();
long todayTime =new Date.getTime();
5.两个相减就会得出结果
long time =todayTime- brithdayDateTime;
6.输出结果
System.out.println("你在人间凑数的日子:"+time/1000/60/60/24/30/12+"年"
+time/1000/60/60/24/30+"月"+time/1000/60/60/24+"天"
+time/1000/60/60+"分钟"+time/1000/60+"秒");
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Demo02Test {
public static void main(String[] args) throws ParseException {
Scanner sc=new Scanner(System.in);
System.out.println("请输入您的出生日期,格式:yyyy-MM-dd");
String birthdayDateString=sc.next();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date brithdayDate = sdf.parse(birthdayDateString);
long brithdayDateTime = brithdayDate.getTime();
long todayTime=new Date().getTime();
long time =todayTime- brithdayDateTime;
System.out.println("你在人间凑数的日子:"+time/1000/60/60/24/30/12+"年"
+time/1000/60/60/24/30+"月"+time/1000/60/60/24+"天"
+time/1000/60/60+"分钟"+time/1000/60+"秒");
}
}