import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
public class Main {
public static void main
(String[] args
) { // Test
System.
out.
println(monthsBetween
(LocalDate.
of(2012,
1,
28), LocalDate.
of(2012,
2,
1))); System.
out.
println(monthsBetween
(LocalDate.
of(2012,
2,
27), LocalDate.
of(2012,
2,
28))); System.
out.
println(monthsBetween
(LocalDate.
of(2012,
3,
28), LocalDate.
of(2012,
7,
1))); }
static int monthsBetween(final LocalDate fromDate, final LocalDate toDate) {
ChronoUnit.MONTHS.between(
fromDate.with(TemporalAdjusters.firstDayOfMonth()),
toDate.with(TemporalAdjusters.firstDayOfMonth())
)
);
}
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnRpbWUudGVtcG9yYWwuQ2hyb25vVW5pdDsKaW1wb3J0IGphdmEudGltZS50ZW1wb3JhbC5UZW1wb3JhbEFkanVzdGVyczsKCnB1YmxpYyBjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQkvLyBUZXN0CgkJU3lzdGVtLm91dC5wcmludGxuKG1vbnRoc0JldHdlZW4oTG9jYWxEYXRlLm9mKDIwMTIsIDEsIDI4KSwgTG9jYWxEYXRlLm9mKDIwMTIsIDIsIDEpKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKG1vbnRoc0JldHdlZW4oTG9jYWxEYXRlLm9mKDIwMTIsIDIsIDI3KSwgTG9jYWxEYXRlLm9mKDIwMTIsIDIsIDI4KSkpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihtb250aHNCZXR3ZWVuKExvY2FsRGF0ZS5vZigyMDEyLCAzLCAyOCksIExvY2FsRGF0ZS5vZigyMDEyLCA3LCAxKSkpOwoJfQoKCXN0YXRpYyBpbnQgbW9udGhzQmV0d2VlbihmaW5hbCBMb2NhbERhdGUgZnJvbURhdGUsIGZpbmFsIExvY2FsRGF0ZSB0b0RhdGUpIHsKCQlyZXR1cm4gTWF0aC50b0ludEV4YWN0KAoJCQkJCUNocm9ub1VuaXQuTU9OVEhTLmJldHdlZW4oCgkJCQkJCQlmcm9tRGF0ZS53aXRoKFRlbXBvcmFsQWRqdXN0ZXJzLmZpcnN0RGF5T2ZNb250aCgpKSwKCQkJCQkJCXRvRGF0ZS53aXRoKFRlbXBvcmFsQWRqdXN0ZXJzLmZpcnN0RGF5T2ZNb250aCgpKQoJCQkJCSkKCQkJCSk7Cgl9Cn0=