在Java中如何计算年龄
我在计算年龄方面有问题在Java中如何计算年龄,java,sql,eclipse,oop,Java,Sql,Eclipse,Oop,我在计算年龄方面有问题 public long getAlter() { Date now = new Date(); long yearInMillis = 365 * 24 * 60 * 60 * 1000; long alter = (now.getTime() - buildYear.getTime()) /365/24/60/60/1000 ; return alter; } 建筑年份为:2007年5月22日 -->(年月日) 我需要一个
public long getAlter() {
Date now = new Date();
long yearInMillis = 365 * 24 * 60 * 60 * 1000;
long alter = (now.getTime() - buildYear.getTime()) /365/24/60/60/1000 ;
return alter;
}
- 建筑年份为:2007年5月22日李>
@这不是复制品,因为我不会和乔达一起工作 这个链接似乎做了类似的事情: 如果链接中断,下面是所说的: 查看Joda,它简化了日期/时间计算(Joda也是 新的标准Java日期/时间API的基础,因此 学习即将成为标准的API) 编辑:Java8将有一些非常相似的东西,值得一试 退房 e、 g
LocalDate birthdate = new LocalDate (1970, 1, 20);
LocalDate now = new LocalDate();
Years age = Years.yearsBetween(birthdate, now);
那是
尽可能简单。当前的Java内容是(正如您所看到的)
(已识别)有点不直观
你是说SO中的链接吗?@BrianAgnew是的-我怀疑它是否会被破坏,但在极少数情况下,问题或答案会被删除。@user3714925-你为什么不使用Joda?不,我不会使用Joda!使用
/365/24/60/60/1000
@user3714925 Duplicate不建议仅使用Joda,您将获得大量舍入错误。您还可以使用Java8或Calendar
中添加的类,如该问题的不同答案所示。顺便说一句,您在365*24*60*60*1000中遇到整数溢出问题。要解决此问题,请使用long
作为乘法的第一个参数,以便其他参数的长度与365L*24*60*60*1000类似。另外,您没有指定机制是否还应包括时间(小时、分钟)。这个细节很重要,因为在1.1.2001 12:00
和2.1.2001 11:59
之间不会有一整天,因为你会缺少一秒钟。