如何计算spring框架java中的年数

时间:2012-05-03 16:25:28

标签: java

  

可能重复:
  How do I calculate someone's age in Java?

我正在spring框架中创建一个应用程序,用于计算用户将其生日输入UI后的年龄。到目前为止,我的getAge bean有gets和sets,但是我如何合理地纠正计算方法呢?

import java.util.*;
public class ageBean {

Date birthdate;


public Date getBirthday(){
return birthdate;
}
 public void setBirthdate(Date birthdate){
this.birthdate=birthdate;
}

   //method goes here 
    }

3 个答案:

答案 0 :(得分:0)

春天没什么。如果你想计算当前年龄,

    long diff = new Date().getTime() - birthdate.getTime(); // current date - b'day
    long diffSeconds = diff / 1000;         
    long diffMinutes = diff / (60 * 1000);         
    long diffHours = diff / (60 * 60 * 1000);                      
    System.out.println("Time in seconds: " + diffSeconds + " seconds.");         
    System.out.println("Time in minutes: " + diffMinutes + " minutes.");         
    System.out.println("Time in hours: " + diffHours + " hours."); 

答案 1 :(得分:0)

使用java.util.Calendar确保闰年,不同月份的天数等被计算在内,

int thisYear = Calendar.getInstance().get(Calendar.YEAR);
Calendar birthdateCalendar = Calendar.getInstance();
birthdateCalendar.setTime(birthdate);
int birthYear = birthdateCalendar.get(Calendar.YEAR);
int yearsSinceBirth = thisYear - birthYear;

答案 2 :(得分:0)

您可以通过将date1替换为您的出生日期来尝试这段代码,

Date date= new Date(System.currentTimeMillis());
date.setYear(date.getYear()+1900);

//这是完成的,因为currentTimeMillis返回从1970年1月1日起经过的时间

Date date1=new Date(2000,10,15);
long timegap =date.getTime()-date1.getTime();
long milliSecsInAYear = 31536000000L;

System.out.println(timegap/milliSecsInAYear+"years" +((date.getTime()-date1.getTime())%milliSecsInAYear)/(milliSecsInAYear/365)+"days" );

注意:我花了一年时间有365天