0

重複の可能性:
Java で誰かの年齢を計算するにはどうすればよいですか?

ユーザーが生年月日をUIに入力した後の年齢を計算する春のフレームワークでアプリケーションを作成しています。これまでのところ、私の getAge Bean には get と 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 
    }
4

3 に答える 3

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;
于 2012-05-03T16:57:47.587 に答える
0

Spring には何もありません。現在の年齢を計算したい場合は、

    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."); 
于 2012-05-03T16:34:29.950 に答える
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" );

注 : 私は 1 年を 365 日としています。

于 2012-05-03T17:37:06.600 に答える