根据出生年月日计算出生了多少年,多少月,多少天
根据出生年月日计算出生了多少年,多少月,多少天
1,定义一个方法获得出生日期的Date类型时间
/*** // 格式化字符串类型的时间* @param birthday* @return* @throws ParseException*/public static Date getDateFormat(String birthday) throws ParseException {// 格式化字符串类型的时间SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");// 得到Date类型的时间Date parse = simpleDateFormat.parse(birthday);return parse;}
2,根据出生的时间Date和当前时间Date来计算出生了多少年,多少月,多少天
/*** 根据出生时间Date和当前时间Date来计算出生年月日* @param birthday* @throws ParseException*/public static void getAge(String birthday) throws ParseException {// 格式化传入的字符串类型的时间,转为Date类型对象Date dateFormat = getDateFormat(birthday);// 得到时间戳long birTime = dateFormat.getTime();// 创建Calendar来获取当前的时间,及其时间戳Calendar calendar = Calendar.getInstance();Date date = calendar.getTime();long nowTime = date.getTime();// 参与计算的当前时间必须大于出生日期才可以计算if (nowTime < birTime) { // 出生时间在当前时间之后,报错,无法计算throw new IllegalArgumentException("对比的出生时间晚于当前的时间,无法进行比较!");}// 获取当前 年 月 日int nowYear = calendar.get(Calendar.YEAR);int nowMon = calendar.get(Calendar.MONDAY) + 1; // 月份从0开始 所以+1int nowDay = calendar.get(Calendar.DAY_OF_MONTH);System.out.println("当前 年 月 日:"+nowYear + " " + nowMon + " " + nowDay);// 创建Calendar来存出生年 月 日Calendar calendar2 = Calendar.getInstance();// 将出生日期时间戳存入calendar 得到出生时的年 月 日calendar2.setTime(dateFormat);// 获取出生时 年 月 日int birYear = calendar2.get(Calendar.YEAR);int birMon = calendar2.get(Calendar.MONDAY) + 1; // 月份从0开始 所以+1int birDay = calendar2.get(Calendar.DAY_OF_MONTH);System.out.println("出生时的年 月 日:"+birYear + " " + birMon + " " + birDay);// 计算出生至今的 年龄/月份/天数int age = nowYear - birYear; // 获得年龄int mon = 0;int day = 0;if (nowMon >= birMon) { // 当前月份大于出生时月份mon = nowMon - birMon; // 获得出生月份if (nowDay >= birDay) { // 当天大于等于出生那天day = nowDay - birDay; // 直接获得出生天数} else { // 当天小于出生那天mon = mon - 1; // 月份减少1day = birDay - nowDay; // 天数差int maximum = calendar.getActualMaximum(Calendar.DATE); // 当前月天数day = maximum - day; // 获得出生天数}} else { // 当前月份小于出生时月份age = age - 1;// 当前月份小于出生时月份 年龄减 1mon = 12 - (birMon - nowMon); // 获得出生月份if (nowDay >= birDay) { // 当天大于等于出生那天day = nowDay - birDay; // 直接获得出生天数} else { // 当天小于出生那天mon = mon - 1; // 月份-1day = birDay - nowDay; // 天数差int maximum = calendar.getActualMaximum(Calendar.DATE); // 当前月天数day = maximum - day; // 获得出生天数}}System.out.println("出生日期:" + birYear + " " + birMon + " " + birDay);System.out.println(age + "岁 " + mon + "月 " + day + "天");}
测试
public static void main(String[] args) throws ParseException {String birthday = "2000-9-31";getAge(birthday); // 查询结果 20岁 10月 20天}
根据出生年月日计算出生了多少年,多少月,多少天相关推荐
- php 输入出生年月日计算年纪,PHP实现根据出生年月日计算年龄的功能(代码示例)...
本篇文章给大家介绍一下使用PHP实现根据出生年月日计算年龄的功能,结合实例形式分析了php日期相关转换与计算操作技巧.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 废话不多说,之间 ...
- PHP实现根据出生年月日计算年龄的功能(代码示例)
本篇文章给大家介绍一下使用php实现根据出生年月日计算年龄的功能,结合实例形式分析了php日期相关转换与计算操作技巧.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 废话不多说,之间 ...
- 根据Date类型出生年月日计算出年龄
要求:给一个Date类型的出生时间,出身年月日使用时间选择器选取,得到此人的年龄,要求年龄限制在1-100岁之间. 1.在jsp页面得到出生时间,格式为yyyy-MM-dd HH:mm:ss,限定最小 ...
- Java工具-根据出生年月日计算出年龄
我不写代码,我只是代码的搬运工 package com.example.demo.test.时间; import java.text.SimpleDateFormat; import java.uti ...
- mysql中根据出生年月日计算年龄。
通过获取当前时间的年月日,然后获取年份,再过获取数据中的年月日获取年份. select year(CURDATE())-year(sbirthday) from student; 这种方式获取的年龄并 ...
- 从键盘录入身份证号码,然后从中截取出生年月日,最后输出”xxxx年xx月xx日”
public class Test1 {public static void main(String[] args) {System.out.print("请录入身份证号:"); ...
- Excel如何提取身份证中出生年月日、计算年龄、性别
身份证号是18位,前6位是所属省市区.7至14位是出生年月日.其中第17位表示性别,奇数为男性,偶数女性 身份证号 340204198107181456 340204199504172986 3426 ...
- java 输入出生年月_java代码实现输入你出生年月日,计算到今天已经度过了多少天...
输入出生年月日,计算到今天为止已经经过了多少天 import java.text.ParseException; import java.text.SimpleDateFormat; import j ...
- Access根据出生日期计算年龄_WPS表格技巧—如何根据出生年月日求虚岁年龄
我们在利用WPS表格和Excel表格进行日常办公时,经常需要计算年龄,那么如果我们想要根据出生年月日求虚岁年龄的话,还要一个一个数吗?当然不必,今天我们就来教大家如何计算年龄根据出生年月日求虚岁年龄, ...
最新文章
- 【ThinkPHP3.2.3】学习ThinkPHP笔记:框架中的配置文件(3)
- 自己实现一个最简单的数据库
- php 隐式路由,关于Laravel 7 的简单隐式路由模型绑定
- Fiddler使用方法简介
- 【转】使用ant来调用Jmeter,并定制运行时参数
- ArcMap下栅格图象矢量化步骤:
- 符号库匹配不对的原因_整理了几种离合器打滑的原因,再安装调试时可别弄错了...
- node.js学习笔记之模拟路由
- 10月24日云栖精选夜读:2017杭州·云栖大会完美收官 虚拟化平台精彩回顾
- 【OpenCV入门指南】第二篇 缩放图像
- [转]《编程之道》(很老的一篇文章)
- 项目质量管理__七种基本质量工具__老七工具和新七工具
- 【Vue】win10启动vue项目报错: errno: -4058, code: ‘ENOENT‘, syscall: ‘spawn cmd‘
- Javascript网页打印大全
- DyingGasp电路(掉电检测电路)设计
- 字符串部分常用API
- 小草说----大数据和机器学习为什么这样火
- 物联网平台ThingsBoard的安装
- REDIS缓存集群介绍
- STM32MP157驱动开发——蜂鸣器设备驱动