标签:练习 System 毫秒 日期 API println Date 出生日期 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。