可以使用數月和數年爲單位使用Joda Time和計算值之間(這是你在這裏得到了什麼)。
示例代碼:
import org.joda.time.*;
public class Test {
public static void main(String[] args) {
LocalDate dob = new LocalDate(1992, 12, 30);
LocalDate date = new LocalDate(2010, 12, 29);
Period period = new Period(dob, date, PeriodType.yearMonthDay());
System.out.println(period.getYears() + " years and " +
period.getMonths() + " months");
}
}
(該使用週期類型,其中包括天爲好,但不會影響答案)
一般來說,約達時間是一個更好的API比使用日期/日曆 - 而且如果您可以避免,您真的不想進行自己執行日期計算的業務。它很快就會變得混亂。
根據aioobe的回答,如果你劃分兩個整數表達式,算術將在整數算術中執行,這可能不是你想要的 - 但是對於日期和時間算術,只是讓其他人在第一個中做出努力工作地方:)
上面的代碼將使用ISO-8601日曆的方式,這基本上是公曆。如果您想使用其他內容,請在LocalDate
的年/月/日之後將其指定爲另一個構造函數參數。
這是來自閏年 - 在你的時間框架中有相當一些閏年,所以你的公式現在是錯誤的4天。 – 2011-03-21 14:24:10