美文网首页
生日转年龄

生日转年龄

作者: Slience无言 | 来源:发表于2017-01-10 18:09 被阅读0次

思路

  1. 获取Date类型的生日,之后转换成毫秒,再把当前的毫秒数相减就可以获得到用户活了多少毫秒,再把毫秒转换成天转换成年即可,可能需要处理一下闰年的情况
  2. 获取Date类型的生日,转换成Calendar,把当前时间也转成Calendar之后获取两者Calendar.YEAR,两者相减,之后判断生日的Calendar.DAY_OF_YEAR是否大于当前时间,如果大于说明还没有到今年的生日,刚刚算出来的年龄要减一

实现

1.转换毫秒(没有处理闰年的)

        String dateStr = "1999-1-1";
        Date date = Date.valueOf(dateStr);
        Date now = new Date(System.currentTimeMillis());
        //相差天数
        int day = (int)((now.getTime()-date.getTime()) / (1000 * 60 * 60 * 24));
        System.out.println("年龄=" + (day / 365));

2.使用Calendar

        String dateStr = "1999-1-1"; //生日
        Date date = Date.valueOf(dateStr);
        Calendar now = Calendar.getInstance();
        Calendar birth = Calendar.getInstance();
        birth.setTime(date);
        int age = 0;
        if(birth.after(now)) {
            //当生日在当前时间的前面的时候->这是不可能的
        } else {
            age = now.get(Calendar.YEAR) - birth.get(Calendar.YEAR);
            if(now.get(Calendar.DAY_OF_YEAR) < birth.get(Calendar.DAY_OF_YEAR)) {
                age -= 1;
            }
        }
        System.out.println("年龄=" + age);

个人比较推荐第二种方法,比较直接而且日期计算一般都不直接用Date相关的方法的。

相关文章

  • 生日转年龄

    思路 获取Date类型的生日,之后转换成毫秒,再把当前的毫秒数相减就可以获得到用户活了多少毫秒,再把毫秒转换成天转...

  • 生日与年龄

    “你多大了?” “我想想……18岁吧,嘿嘿~” 几乎每次别人问笔者年龄多大,笔者都要拿自己的出生年月跟现今年月算...

  • 年龄数字转英文

    一、实现功能: 输入表示年龄的数字,将其转化为英文 二、相关知识: 1、数组2、条件语句 三、代码实现 四、运行结...

  • 从生日得到年龄

    从�生日(需要符合日期格式)得到年龄:

  • 《记住生日,忘记年龄》

    信手辞春,浅夏茵茵。 本是繁茂的季节,本该生机勃勃,本已浪漫的情思,却因挥之不去的疫情搅得心烦意乱。 这个生日,注...

  • 男主介绍

    王俊凯 年龄:16 生日:1999年9月21日 王源 年龄:15 生日:2000年11月08日 易烊千玺 年龄:1...

  • 我和她

    我 姓名:穆穆 年龄:18 生日:1999年6月20日 她 姓名:七七 同性恋 年龄:17 生日:1999年12月...

  • 测试 || 你的恋爱智商及格了吗?

    1、你的心理年龄比实际年龄小吗? 是的,心理年龄很小转2题 不是,比较成熟转3题 二者差不多转4题 2...

  • 过生日莫多谈年龄

    今天晚上参加了一个生日宴会,喝酒多少倒不是问题,年龄却成问题了。 年龄本不是问题,人人都有年龄,年龄都与日俱增。“...

  • 年龄越大,“生日”越淡

    文/快乐心 步入“四”字头后,发现时间好像溜得更快。一年一年仿如弹指一挥间。 “童年时代”一年的流逝会比“成年时代...

网友评论

      本文标题:生日转年龄

      本文链接:https://www.haomeiwen.com/subject/psflbttx.html