2015-07-20 52 views
0

我試圖從Jdatechooser中獲取所選日期並在文本框中顯示與日期對應的年齡,我看到所有線程都在討論這個問題,但它不會對於me.here工作是我的代碼:使用喬達時間從jdatechooser中選擇日期並自動在文本框中顯示年齡

private void datenaiss_choozPropertyChange(java.beans.PropertyChangeEvent evt) {            
    Date date = (Date) datenaiss_chooz.getDate(); 
LocalDate ld = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); 
Period p =Period.between(ld, LocalDate.now()); 
age.setText(p); 


}    
+1

正是你的「它不工作」是什麼意思?你能分享到目前爲止的輸出嗎?可能你只需要做'p。 getYears()','p。 getMonths()'等 –

+0

我寫了age.setText(p.getyears),我得到了「不兼容的類型:它不能被轉換爲字符串」 – Sam

+0

'getYears()''返回'int'並且你需要放置一個'String輸入文本字段。所以使用'String.valueOf(p.getYears());' –

回答

0

鰭長時間後盟友我得到了解決,謝謝大家的幫助me.Here是我的代碼完美的作品:

DateTime start = new DateTime(datenaiss_chooz.getDate()); 
Years h = Years.yearsBetween(start, new DateTime()); 
StringBuilder b = new StringBuilder(); 
b.append(h.getYears()); 
String str = b.toString(); 
if (h.getYears()==0) 
age.setText(""); 
else 
age.setText(str+" "+"ans"); 
0

解決您的問題!

DateTime birthDate = new DateTime(1990, 1, 15, 0, 0, 0, 0); 
DateTime now = new DateTime(); 
Period period = new Period(birthDate, now); 
int years = period.getYears(); 
System.out.println(years); 

這會給你你所需要的差異

+0

這不是我要找的 – Sam

+0

那你在找什麼? –

+0

沒關係,我v解決了這個問題,謝謝 – Sam