2015-07-20 50 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