其他分享
首页 > 其他分享> > 练习-用日期时间相关的API,计算出一个人已经出生了多少天和Calendar类介绍,获取对象的方式

练习-用日期时间相关的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