Java 根据出生日期获得年龄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 根据出生日期获得年龄相关的知识,希望对你有一定的参考价值。

数据库中有一个字段 出生日期
我要写一个方法,目的就是把出生日期传进去,然后返回年龄,要算周岁
精确到日啊
怎么写?请大侠帮帮忙了,谢谢!
就是不可以算虚岁,不能用现在的年减去出生的年这么简单来算

实现步骤:

1、获取当前时间

2、判断出生日期是否小于当前时间,如果大于,则引发一场

3、从当前时间中取出年、月、日;从出生日期中取出年、月、日,年份相减

4、然后做具体判断

示例代码如下:

public static int getAge(Date birthDay) throws Exception  
        //获取当前系统时间
        Calendar cal = Calendar.getInstance(); 
        //如果出生日期大于当前时间,则抛出异常
        if (cal.before(birthDay))  
            throw new IllegalArgumentException( 
                "The birthDay is before Now.It\'s unbelievable!"); 
         
        //取出系统当前时间的年、月、日部分
        int yearNow = cal.get(Calendar.YEAR); 
        int monthNow = cal.get(Calendar.MONTH); 
        int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); 
        
        //将日期设置为出生日期
        cal.setTime(birthDay); 
        //取出出生日期的年、月、日部分  
        int yearBirth = cal.get(Calendar.YEAR); 
        int monthBirth = cal.get(Calendar.MONTH); 
        int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH); 
        //当前年份与出生年份相减,初步计算年龄
        int age = yearNow - yearBirth; 
        //当前月份与出生日期的月份相比,如果月份小于出生月份,则年龄上减1,表示不满多少周岁
        if (monthNow <= monthBirth)  
            //如果月份相等,在比较日期,如果当前日,小于出生日,也减1,表示不满多少周岁
            if (monthNow == monthBirth)  
                if (dayOfMonthNow < dayOfMonthBirth) age--; 
            else 
                age--; 
             
         
        System.out.println("age:"+age); 
        return age; 
    
参考技术A String t1 = 现在实际日期.replace('-','/');
String t2 = 出生日期.replace('-','/');

Date dt1= new Date(t1);
Date dt2= new Date(t2);
long i= (dt1.getTime() - dt2.getTime())/(1000*60*60*24);
//i就是总天数了,之后你除个365 就是岁数, 余数就是天数 要算月的话就把余数再除以12 我的这个日期的格式是2008-11-22
实岁就是现在的年减去出生的年呀,虚岁是实岁再加1 这个天数就是能比较精确了吧本回答被提问者采纳
参考技术B 简单实现代码如下:

public static int getAge(Date birthDate)

if (birthDate == null)
throw new
RuntimeException("出生日期不能为null");

int age = 0;

Date now = new Date();

SimpleDateFormat format_y = new
SimpleDateFormat("yyyy");
SimpleDateFormat format_M = new
SimpleDateFormat("MM");

String birth_year =
format_y.format(birthDate);
String this_year =
format_y.format(now);

String birth_month =
format_M.format(birthDate);
String this_month =
format_M.format(now);

// 初步,估算
age =
Integer.parseInt(this_year) - Integer.parseInt(birth_year);

// 如果未到出生月份,则age - 1
if
(this_month.compareTo(birth_month) < 0)
age -=
1;
if (age <
0)
age =
0;
return age;
参考技术C private static String dealAge(int days, Date bornDate)
String age = "";
if(days < 0 || bornDate == null)
return "-";

Date currentDate = DateTool.getNextDate(bornDate, days); //当前日期

Calendar from = Calendar.getInstance();
from.setTime(bornDate);
Calendar to = Calendar.getInstance();
to.setTime(currentDate);

int fromYear = from.get(Calendar.YEAR);
int fromMonth = from.get(Calendar.MONTH);
int fromDay = from.get(Calendar.DAY_OF_MONTH);
int toYear = to.get(Calendar.YEAR);
int toMonth = to.get(Calendar.MONTH);
int toDay = to.get(Calendar.DAY_OF_MONTH);
int year = toYear - fromYear;
int month = toMonth - fromMonth;
int day = toDay - fromDay;

if(month < 0)
year += -1;
month += 12;

if(day < 0 )
month += -1;
Calendar lastMonth = Calendar.getInstance();
lastMonth.setTime(DateTool.getNextMonth(currentDate, -1));
day += lastMonth.getActualMaximum(Calendar.DAY_OF_MONTH);


// System.out.println("bornDate="+DateTool.getFullDate().format(bornDate));
// System.out.println("currentDate="+DateTool.getFullDate().format(currentDate));
// System.out.println("oneYear="+DateTool.getFullDate().format(oneYear));
// System.out.println("year="+year);
// System.out.println("month="+month);
// System.out.println("day="+day);
if(year < 1) //小于1岁
if(month > 0)
age += month + "个月";

if(day >= 0)
if(StringUtils.isNotBlank(age))
age += "零" + day + "天";
else
age += day + "天";


else
age += year + "岁";
if(month > 0)
age += month + "个月";
else
if(day > 0)
age += "零" + day + "天";



return age;
参考技术D 我的构思是:

(now - bir)/1000/60/60/24

now是现在的time的long表示
bir是出生的time的long表示

出生日期,根据出生日期怎么算年龄?

参考技术A

提起出生日期,大家都知道,有人问根据出生日期怎么算年龄?另外,还有人想问阳历出生日期,你知道这是怎么回事?其实生日是自己的出生日期吗,下面就一起来看看根据出生日期怎么算年龄?希望能够帮助到大家!

出生日期

1、出生日期:根据出生日期怎么算年龄?

一、虚岁年龄

中国在习惯上常用的年龄计算方法,按出生后所经历的日历年头计算,即生下来就算1岁,以后每过一次新年便增加1岁。例如,12月末出生的,出生后就算1岁,过了公历1月1日或当地农历新年又算1岁。

二、周岁年龄

从出生到计算时为止,共经历的周年数或生日数。例如,年7月1日零时进行人口普查登记,一个年12月15日出生的,按虚岁计算是2岁,实际刚刚6个多月,还未过一次生日,按周岁计算应为不满1周岁,即0岁。出生日期算命运。

确切年龄

指从出生之日起到计算之日止所经历的天数。它比周岁年龄更为地反映人们实际生存的时间,但由于其统计汇总时较为繁琐,故人口统计中使用甚少。在实际生活中,人们除对不满1周岁的,特别是不满1个月的新生儿常常按月日计算外,一般不按日计算确切年龄。

2、出生日期:阳历出生日期

阴历(农历)年1月7日阳历(公历)是年2月16日出生日期写到月还是日。

你的公历是年2月16日,水瓶座(1/20-2/18)Aquarius

星座是人的产物,人家不用中国的农历。

只用公历,所以看星座是看公历的。

羯座(12/22-1/19)Capricorn

生日是自己的出生日期吗

水瓶座(1/20-2/18)Aquarius

双鱼座(2/19-3/20)Pisces

白羊座(3/21-4/20)Aries出生日期计算器。

金牛座(4/21-5/20)Taurus

双子座(5/21-6/21)Gemini

巨蟹座(6/22-7/22)Cancer出生日期八字算命。

狮子座(7/23-8/22)Leo出生日期怎么填写才正确。

处女座(8/23-9/22)Virgo

天秤座(9/23-10/22)Libra

天蝎座(10/23-11/21)Scorpio生辰八字查询命格。

射手座(11/22-12/21)Sagittarius

3、出生日期:生日是自己的出生日期吗

出生日期是指某年某月出生了,就是具体一个时间。而生日是每一年都会的,即出生的月份和日期每年都有1个生日。

4、出生日期:出生日期是多少?哪年哪月哪日出生?

出生日期:.02.05。是一九六零年二月五日出生。

5、出生日期:出生日期与婚姻

1992年7月27日农历天赋。

6、出生日期:该如何选择孩子的出生日期

该如何选择孩子的出生日期

剖腹产与自然生产在胎儿的出生时间确定的生理学方面是不是有区别呢?出生日期2006年月。

答案当然是没有区别。道理就在于,确定人的出生时间的生理学意义是一致的。因为胎儿没有出生前在内主要依赖脐循环,出生后割断脐带哇哇哭泣就形成了肺循环。换句话来说,胎儿离开母体割断脐带哇哇哭泣形成了肺循环就是命理生理学注定的人的出生时间。所以,剖腹产与自然生产在胎儿的出生时间确定的生理学意义是没有有区别的·······

该如何选择孩子的出生日期在线年龄计算器。

孩子是父母的希望与寄托,也是的未来;为未来的宝宝选择一个的出生时间,比给孩子留下一座金山还珍贵;凡是那些、巨富、财阀、名流等,虽然各自有着不同的奋斗经历与过程,但可以完全相同的是,他们几乎每一个人都会有一个相对比较好的出生时间陪伴,都具备与自己命局吻合的财局或官局或印局等天赋,都缺少不了与生俱来的命运的安排。否则的话,他们比凡高贵不了多少,甚至有可能不及凡人。

给未来的宝贝选择一个比较好的有利于一生富贵的出生时间,就会让未来的宝宝赢在富贵的起跑线上,就会让孩子的未来激烈的竞争中胜算的机会更大、成功的天赋更加充分!

该如何选择孩子的出生日期

凡是学习过深圳风水、粤港澳大湾区风水评述师、六柱风水开创者刘玉珍张睿老师的六柱预测学者,才有技术保障选择到真正富贵的出生时间;所以在选择前请有关,是不是具有类似的学习资历,否则就需要慎重考虑了。

以上就是与根据出生日期怎么算年龄?相关内容,是关于根据出生日期怎么算年龄?的分享。看完出生日期后,希望这对大家有所帮助!

以上是关于Java 根据出生日期获得年龄的主要内容,如果未能解决你的问题,请参考以下文章

出生日期,根据出生日期怎么算年龄?

根据出生年份计算年龄的公式,如何根据出生日期求年龄?

mysql中根据输入的年龄查询符合该年龄出生日期的数据

SQL 中怎么根据出生日期算出年龄 然后用年龄查询

SQL语句如何根据出生日期计算年龄

出生日期直接算出年龄,excel按出生日期算年龄函数