import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
public class Main {
public static void main
(String[] args
) { // Test
System.
out.
println(getDiffDateMap
("2012-9-01 20:9:01",
"2012-10-01 20:10:01")); }
DateTimeFormatter dtf
= DateTimeFormatter.
ofPattern("u-M-d H:m:s",
Locale.
ENGLISH); LocalDateTime ldtA = LocalDateTime.parse(dateA, dtf);
LocalDateTime ldtB = LocalDateTime.parse(dateB, dtf);
out.
put(7,
String.
valueOf(ChronoUnit.
MILLIS.
between(ldtA, ldtB
))); out.
put(6,
String.
valueOf(ChronoUnit.
SECONDS.
between(ldtA, ldtB
))); out.
put(5,
String.
valueOf(ChronoUnit.
MINUTES.
between(ldtA, ldtB
))); out.
put(4,
String.
valueOf(ChronoUnit.
HOURS.
between(ldtA, ldtB
))); out.
put(3,
String.
valueOf(ChronoUnit.
DAYS.
between(ldtA, ldtB
))); out.
put(2,
String.
valueOf(ChronoUnit.
WEEKS.
between(ldtA, ldtB
))); out.
put(1,
String.
valueOf(ChronoUnit.
MONTHS.
between(ldtA, ldtB
))); out.
put(0,
String.
valueOf(ChronoUnit.
YEARS.
between(ldtA, ldtB
)));
return out;
}
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGVUaW1lOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudGltZS50ZW1wb3JhbC5DaHJvbm9Vbml0OwppbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7CmltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOwppbXBvcnQgamF2YS51dGlsLk1hcDsKCnB1YmxpYyBjbGFzcyBNYWluIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQkvLyBUZXN0CgkJU3lzdGVtLm91dC5wcmludGxuKGdldERpZmZEYXRlTWFwKCIyMDEyLTktMDEgMjA6OTowMSIsICIyMDEyLTEwLTAxIDIwOjEwOjAxIikpOwoJfQoKCXB1YmxpYyBzdGF0aWMgTWFwPEludGVnZXIsIFN0cmluZz4gZ2V0RGlmZkRhdGVNYXAoU3RyaW5nIGRhdGVBLCBTdHJpbmcgZGF0ZUIpIHsKCQlNYXA8SW50ZWdlciwgU3RyaW5nPiBvdXQgPSBuZXcgTGlua2VkSGFzaE1hcDxJbnRlZ2VyLCBTdHJpbmc+KCk7CgkJRGF0ZVRpbWVGb3JtYXR0ZXIgZHRmID0gRGF0ZVRpbWVGb3JtYXR0ZXIub2ZQYXR0ZXJuKCJ1LU0tZCBIOm06cyIsIExvY2FsZS5FTkdMSVNIKTsKCQlMb2NhbERhdGVUaW1lIGxkdEEgPSBMb2NhbERhdGVUaW1lLnBhcnNlKGRhdGVBLCBkdGYpOwoJCUxvY2FsRGF0ZVRpbWUgbGR0QiA9IExvY2FsRGF0ZVRpbWUucGFyc2UoZGF0ZUIsIGR0Zik7CgoJCW91dC5wdXQoNywgU3RyaW5nLnZhbHVlT2YoQ2hyb25vVW5pdC5NSUxMSVMuYmV0d2VlbihsZHRBLCBsZHRCKSkpOwoJCW91dC5wdXQoNiwgU3RyaW5nLnZhbHVlT2YoQ2hyb25vVW5pdC5TRUNPTkRTLmJldHdlZW4obGR0QSwgbGR0QikpKTsKCQlvdXQucHV0KDUsIFN0cmluZy52YWx1ZU9mKENocm9ub1VuaXQuTUlOVVRFUy5iZXR3ZWVuKGxkdEEsIGxkdEIpKSk7CgkJb3V0LnB1dCg0LCBTdHJpbmcudmFsdWVPZihDaHJvbm9Vbml0LkhPVVJTLmJldHdlZW4obGR0QSwgbGR0QikpKTsKCQlvdXQucHV0KDMsIFN0cmluZy52YWx1ZU9mKENocm9ub1VuaXQuREFZUy5iZXR3ZWVuKGxkdEEsIGxkdEIpKSk7CgkJb3V0LnB1dCgyLCBTdHJpbmcudmFsdWVPZihDaHJvbm9Vbml0LldFRUtTLmJldHdlZW4obGR0QSwgbGR0QikpKTsKCQlvdXQucHV0KDEsIFN0cmluZy52YWx1ZU9mKENocm9ub1VuaXQuTU9OVEhTLmJldHdlZW4obGR0QSwgbGR0QikpKTsKCQlvdXQucHV0KDAsIFN0cmluZy52YWx1ZU9mKENocm9ub1VuaXQuWUVBUlMuYmV0d2VlbihsZHRBLCBsZHRCKSkpOwoKCQlyZXR1cm4gb3V0OwoJfQp9