因此,在我正在处理的Java项目中,我们只需要使用 Date和Calendar对象来表示日期。我正在写的一种方法要求日期至少在过去一定的年数,所以我需要能够准确地计算出现在与给定日期或日历之间的年数。我设法准确地计算出使用该实施之间的天数:计算两个Date或Calendar对象之间的年数,考虑闰年
public static long daysSince(Date pastDate) {
long millisecondsSince = new Date().getTime() - pastDate.getTime();
return TimeUnit.DAYS.convert(millisecondsSince, TimeUnit.MILLISECONDS);
}
不过我现在在努力寻找一种方法来准确计算这些日期之间的年数,同时考虑到闰年等。显然将上述方法的结果除以365或365.25并不完全正常。我知道joda时间包和java.time,但我们明确需要使用Date和Calendar对象。任何人都知道如何做到这一点,最好尽快和优雅尽可能?谢谢
编辑:似乎发现功能的解决方案,请参阅下面
+1我不知道它是否更简单,这取决于我们比较,因为我没有循环我的代码应该让我的代码运行得更快。但很高兴你实施了一个解决方案 – sebenalern