zoukankan      html  css  js  c++  java
  • 计算出生日期和年龄

    根据月龄计算出生日期
    public class date {
        public static void main(String[] args) {
    
            Calendar c = Calendar.getInstance();
            c.add(Calendar.YEAR, 0);
            c.add(Calendar.MONTH, -1);
            c.add(Calendar.DAY_OF_MONTH, 1);//-1
            //常见的日期和时间组合的格式
            /**
             * %tF    “年-月-日”格式(4位年份)    2019-06-09
             * %tD    “月/日/年”格式(2位年份)    06/09/19
             * %tc    全部日期和时间信息    星期日 六月 09 22:17:56 CST 2019
             * %tr    “时:分:秒 PM(AM)”格式(12时制)    10:41:47 下午
             * %tT    “时:分:秒”格式(24时制)    22:41:47
             * %tR    “时:分”格式(24时制)    22:42
             */
            String birthday = String.format("%tF", c.getTime());
    //        System.out.println(c.getTime());
    
            System.out.println(birthday);
        }
    
    
    }

    根据生日计算年龄

    public class CalBabyJoda {
    
        private final static String birthday = "2012-3-10";
    //    private final static String birthday = "2012-3-10 08:20:55";
    
        public static void main(String[] args) {
            while(true){
                Scanner s = new Scanner(System.in);
                System.out.println("########################################");
                DateTimeFormatter format1 = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss");
                DateTimeFormatter format2 = DateTimeFormat .forPattern("yyyy-MM-dd");
                DateTime startDateTime = DateTime.parse(birthday, format2);
                System.out.println("宝宝来到这个世界已经");
                calDateToDay(startDateTime,new DateTime());
                System.out.println("如选择其它日期请输入(格式例如:2012-11-08 14:24:54或着2012-11-08)");
                System.out.println("########################################");
                String endDate = s.nextLine();
                DateTime endDateTime = null;
                try{
                    endDateTime = DateTime.parse(endDate,format1);
                }catch(Exception e){
                    try{
                        endDateTime = DateTime.parse(endDate,format2);
                    }catch(Exception e1){
                        System.out.println("输入格式错误!请重新输入.");
                        continue;
                    }
                }
                System.out.println("宝宝从出生到" + endDateTime.toString("yyyy-MM-dd HH:mm:ss") + "已经");
                calDateToDay(startDateTime,endDateTime);
            }
        }
    
        public static void calDateToDay(DateTime startDateTime,DateTime endDateTime){
    
            LocalDate start=new LocalDate(startDateTime);
            LocalDate end=new LocalDate(endDateTime);
            Days days = Days.daysBetween(start, end);
            int intervalDays = days.getDays();
            int intervalHours = endDateTime.getHourOfDay() - startDateTime.getHourOfDay();
            int intervalMinutes = endDateTime.getMinuteOfHour() - startDateTime.getMinuteOfHour();
            int intervalSeconds = endDateTime.getSecondOfMinute() - startDateTime.getSecondOfMinute();
    
    
            if(intervalSeconds < 0){
                intervalMinutes = intervalMinutes -1;
                intervalSeconds = 60 + intervalSeconds;
            }
    
            if(intervalMinutes < 0){
                intervalHours = intervalHours -1;
                intervalMinutes = 60 + intervalMinutes;
            }
    
            if(intervalHours < 0){
                intervalDays = intervalDays -1;
                intervalHours = 24 + intervalHours;
            }
    
            System.out.println(intervalDays + "天" + intervalHours +
                    "小时" + intervalMinutes + "分钟" + intervalSeconds + "秒");
            System.out.println("############################");
        }
    
    }

    日期和时间字符串格式化

    1、常用的日期格式转换符

    转换符说明示例
    %te 一个月中的某一天(1~31) 2
    %tb 指定语言环境的月份简称 Feb(英文)、二月(中文)
    %tB 指定语言环境的月份全称 February(英文)、二月(中文)
    %ta 指定语言环境的星期几简称 Mon(英文)、星期一(中文)
    %tA 指定语言环境的星期几全称 Monday(英文)、星期一(中文)
    %tc 包括全部日期和时间信息 星期日 六月 09 22:17:56 CST 2019
    %tm 月份 06
    %td 一个月中的第几天(01~31) 09
    %tj 一年中的第几天(001~366) 160
    %ty 2位年份 19
    %tY 4位年份 2019

    2、时间格式化转换符

    转换符说明示例
    %tH 2位数字的24时制的小时(00~23) 02
    %tk 2位数字的24时制的小时(0~23) 2
    %tI(大写i) 2位数字的12时制的小时(00~23) 02
    %tl(小写L) 2位数字的12时制的小时(0~23) 2
    %tM 2位数字的分钟(00~59) 02
    %tS 2位数字的秒数(00~60) 02
    %tL 3位数字的毫秒数(000~999)) 902
    %tN 9位数字的微秒数(000000000~999999999) 064000000
    %tp 指定语言环境下上午或下午标记 下午(中文)、pm(英文)
    %tz 相对于GMT RFC 82 格式的数字时区偏移量 +0800
    %tZ 时区缩写形式的字符串 CST
    %ts 1970-01-01 00:00:00至现在经过的秒数 1560090985
    %tQ 1970-01-01 00:00:00至现在经过的毫秒数 1560090985470

    3、常见的日期和时间组合的格式

    转换符说明示例
    %tF “年-月-日”格式(4位年份) 2019-06-09
    %tD “月/日/年”格式(2位年份) 06/09/19
    %tc 全部日期和时间信息 星期日 六月 09 22:17:56 CST 2019
    %tr “时:分:秒 PM(AM)”格式(12时制) 10:41:47 下午
    %tT “时:分:秒”格式(24时制) 22:41:47
    %tR “时:分”格式(24时制) 22:42

    DAY_OF_MONTH:一个月的第几天,也就是口头所说的几号,比如值为1,就代表是1号;
    DAY_OF_WEEK:星期几,这个值在Calendar中有对应的常量比如,星期天就用:Calendar.SUNDAY,星期一就是Calendar.MONDAY;
    DAY_OF_WEEK_IN_MONTH:这个月的第几周,配合DAY_OF_WEEK,就知道这个月的具体那一天,外国人就喜欢 几月的第几周的星期几 这样的日期表示方式;
    DAY_OF_YEAR:一年当中的第几天

    参考:

    https://www.cnblogs.com/yinzhengjie/p/8870958.html

  • 相关阅读:
    GHOST CMS
    某小姑娘治疗案
    关于ssl证书的一些知识
    Hbuiler中常用的快捷键
    跌落损任胸胁案
    老年脑梗案
    Centos7安装完成后设定基本的网络配置
    Centos7下的文件压缩
    在centos7上用docker安装宝塔面板
    右手中指一侧麻木案
  • 原文地址:https://www.cnblogs.com/appium/p/12213471.html
Copyright © 2011-2022 走看看