2010-11-11 110 views
0

我想將此代碼從JavaScript更改爲Java servlet。任何人都可以指導我找到解決方案嗎?將JavaScript函數轉換爲Java

var dob1 = document.getElementById(id).value; 
var today = new Date(), 
dob = new Date(dob1), 
age = new Date(today - dob).getFullYear() - 1970; 
+0

也許你的意思是Javascript?重新標記。 – 2010-11-11 14:39:07

+0

是不是JavaScript而不是HTML ......或者簡單地用你提供的代碼編寫哪種語言?看看JS/Java的混合 – 2010-11-11 14:39:32

+0

不,我想在java servlet中使用這個函數。所以我想爲這個 – yopirates 2010-11-11 14:40:01

回答

3

使用Calendar API。

String dobString = "1978-03-26"; 
Date dobDate = new SimpleDateFormat("yyyy-MM-dd").parse(dobString); 

Calendar dobCalendar = Calendar.getInstance(); 
dobCalendar.setTime(dobDate); 
Calendar today = Calendar.getInstance(); 
int age = -1; 

while (today.after(dobCalendar)) { 
    age++; 
    today.add(Calendar.YEAR, -1); 
} 

System.out.println(age); // 32 

由於Calendar API是太可怕了,我建議JodaTime代替。

String dobString = "1978-03-26"; 
DateTime dobDate = DateTimeFormat.forPattern("yyyy-MM-dd").parseDateTime(dobString); 
DateTime today = new DateTime(); 
int age = Years.yearsBetween(dobDate, today).getYears(); 
System.out.println(age); // 32 
+0

我使用datepicker和日期格式this.I已經在jsp代碼中實現了這一點,我想在servlet – yopirates 2010-11-11 14:50:04

+0

OK中實現相同的代碼。什麼阻止你這樣做? (注意JSP!= JavaScript) – BalusC 2010-11-11 14:51:21

+0

是的,我知道這一點。讓我給你我的jsp代碼和servlet代碼。 – yopirates 2010-11-11 14:54:25