练习-用日期时间相关的API,计算出一个人已经出生了多少天和Calendar类介绍,获取对象的方式
作者:互联网
练习-用日期时间相关的API,计算出一个人已经出生了多少天
分析:
1.使用scanner类中的方法next,获取出生日期
2.使用DateFormat类中的方法parse,把字符串的出生日期解析为Date格式
3.把Date格式的出生日期转专换为毫秒值
4.获取当前的日期,转换为毫秒值
5.使用当前白期的毫秒值-出生日期的毫秒值
6.把毫秒值的差值转换为天(s/1000/60/60/24)
public static void main(String[] args) throws ParseException { //1.使用scanner类中的方法next,获取出生日期 Scanner sc = new Scanner(System.in) ; System.out.println("请输入您得到出生日期,格式为yyyy-MM-dd" ); String birthdayDateString = sc.next(); //2.使用DateFormat类中的方法parse,把字符串的出生日期解析为Date格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" ); Date birthdayDate = sdf.parse(birthdayDateString); //3.把Date格式的出生日期转换为毫秒值 long birthdayDateTime = birthdayDate.getTime(); //4.获取当前的日期,转换为毫秒值 long todayTime = new Date().getTime(); //5.使用当前日期的毫秒值-出生日期的毫秒值 long time = todayTime-birthdayDateTime; //6.把毫秒值的差值转换为天(s/1000/60/60/24) System.out.println(time/1000/60/60/24); } 结果
public static void main(String[] args) throws ParseException { //使用scanner接收数据 Scanner scanner=new Scanner(System.in); System.out.println("请输入出生年份"); int Year= scanner.nextInt(); System.out.println("请输入出生月份"); int Month=scanner.nextInt(); System.out.println("请输入出生日"); int Day=scanner.nextInt(); String YearMonthDay=Year+"年"+Month+"月"+Day+"日"; CountAgeDay(YearMonthDay); } /* 计算出生天数 * Date 出生日期 * */ private static void CountAgeDay(String SoucrDate) throws ParseException { //1.获取自己生日日期的毫秒 //先把字符串日期转换为Date格式日期 SimpleDateFormat sdt=new SimpleDateFormat("yyyy年MM月dd日"); Date date=sdt.parse(SoucrDate); //在把转换完之后的,Date日期转换为毫秒。 Long MilliScond=date.getTime(); //2.获取当前日期的毫秒 long NowMilliScode=System.currentTimeMillis(); //3.获取到个人已经出生的天数 //公式; 出生天数= (目前的日期毫秒数-个人出生日期的毫秒数)/86400000 long Day=(NowMilliScode-MilliScond)/86400000; //输出具体的天数 System.out.println("您好:您目前已经出生了"+Day+"天"); }
结果
Calendar类介绍,获取对象的方式
java.util.calendar类:日历类
caLendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR )
calendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了caLendar类的子类对象
static Calendar getInstance()使用黑默认时区和语言环境获得一个日历。
Calendar instance = Calendar.getInstance(); System.out.println(instance);
结果
java.util.GregorianCalendar[time=1657000208472,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=6,WEEK_OF_YEAR=28,WEEK_OF_MONTH=2,DAY_OF_MONTH=5,DAY_OF_YEAR=186,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=50,SECOND=8,MILLISECOND=472,ZONE_OFFSET=28800000,DST_OFFSET=0]
备注:
在西方的星期,开始为周日,中国为周一
在Calendar类中,月份的表示是以0-11代表的是1-12月
日期是有大小关系的,时间靠后,时间越大。
标签:练习,System,毫秒,日期,API,println,Date,出生日期,Calendar 来源: https://www.cnblogs.com/yuzong/p/16446141.html