2016-05-31 10 views

答えて

0

私は、次の操作を行うことをお勧め:

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); 
} 
関連する問題