0
如何使用Jodatime從當前日期計算下一個生日。如何使用Jodatime從當前日期計算下一個生日
例如當前日期是2016年5月31日
出生日期是1991年2月26日和1991年7月23日
輸出看起來像下面。
Birthday Next Birthday
Feb 26, 1991 Feb 26, 2017
July 23, 1991 July 26, 2016
如何使用Jodatime從當前日期計算下一個生日。如何使用Jodatime從當前日期計算下一個生日
例如當前日期是2016年5月31日
出生日期是1991年2月26日和1991年7月23日
輸出看起來像下面。
Birthday Next Birthday
Feb 26, 1991 Feb 26, 2017
July 23, 1991 July 26, 2016
,我建議做以下幾點:
public static void main(String[] args) throws Throwable {
String d1 = "Feb 26, 1991";
String d2 = "July 23, 1991";
DateTimeFormatter f =
DateTimeFormat.forPattern("MMM dd, yyyy").withLocale(Locale.ENGLISH);
System.out.println(nextBirthDay(f.parseLocalDate(d1))); // 2017-02-26
System.out.println(nextBirthDay(f.parseLocalDate(d2))); // 2016-07-23
}
private static LocalDate nextBirthDay(LocalDate date) {
LocalDate today = LocalDate.now(DateTimeZone.getDefault());
int year = today.getYear();
int month = date.getMonthOfYear();
int dayOfMonth = date.getDayOfMonth();
if (
today.getMonthOfYear() > month
|| (today.getMonthOfYear() == month && today.getDayOfMonth() > dayOfMonth)
) {
year++;
}
return new LocalDate(year, month, dayOfMonth);
}