/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.* ;
import java.time.format.* ;
import java.time.temporal.* ;
import java.time.chrono.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String inputModified
= "--" + input
; MonthDay md = MonthDay.parse( inputModified ) ;
LocalDate leapYear2012 = md.atYear( 2012 ) ;
ZoneId z = ZoneId.of( "America/Montreal" ) ;
Year y = Year.now( z ) ;
LocalDate currentYear = md.atYear( y.getValue() ) ;
System.
out.
println( "md.toString(): " + md
) ; System.
out.
println( "leapYear2012.toString(): " + leapYear2012
) ; System.
out.
println( "currentYear.toString(): " + currentYear
) ;
ZoneId zKolkata = ZoneId.of( "Asia/Kolkata" ) ;
long yearNumber = Year.now( zKolkata ).getValue() ;
DateTimeFormatter formatter = new DateTimeFormatterBuilder().parseDefaulting( ChronoField.YEAR , yearNumber ).appendPattern( "MM-dd").toFormatter() ;
LocalDate ld = LocalDate.parse( "02-28" , formatter ) ;
System.
out.
println( "ld.toString(): " + ld
) ;
MonthDay
.parse (
"--" + "02-29"
)
.atYear(
Year.now( ZoneId.of( "Asia/Tokyo" ) ).getValue()
)
);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLiogOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC4qIDsKaW1wb3J0IGphdmEudGltZS50ZW1wb3JhbC4qIDsKaW1wb3J0IGphdmEudGltZS5jaHJvbm8uKiA7CgoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCgkgICAgU3RyaW5nIGlucHV0ID0gIjAyLTI5IiA7CgkgICAgU3RyaW5nIGlucHV0TW9kaWZpZWQgPSAiLS0iICsgaW5wdXQgOwoJICAgIE1vbnRoRGF5IG1kID0gTW9udGhEYXkucGFyc2UoIGlucHV0TW9kaWZpZWQgKSA7CgkgICAgCgkgICAgTG9jYWxEYXRlIGxlYXBZZWFyMjAxMiA9IG1kLmF0WWVhciggMjAxMiApIDsKCSAgICAKCSAgICBab25lSWQgeiA9IFpvbmVJZC5vZiggIkFtZXJpY2EvTW9udHJlYWwiICkgOwoJICAgIFllYXIgeSA9IFllYXIubm93KCB6ICkgOwoJICAgIExvY2FsRGF0ZSBjdXJyZW50WWVhciA9IG1kLmF0WWVhciggeS5nZXRWYWx1ZSgpICkgOwoJICAgIAoJICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIm1kLnRvU3RyaW5nKCk6ICIgKyBtZCApIDsKCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJsZWFwWWVhcjIwMTIudG9TdHJpbmcoKTogIiArIGxlYXBZZWFyMjAxMiApIDsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJjdXJyZW50WWVhci50b1N0cmluZygpOiAiICsgY3VycmVudFllYXIgKSA7CiAgICAgICAgCgkgICAgWm9uZUlkIHpLb2xrYXRhID0gWm9uZUlkLm9mKCAiQXNpYS9Lb2xrYXRhIiApIDsKCSAgICBsb25nIHllYXJOdW1iZXIgPSBZZWFyLm5vdyggektvbGthdGEgKS5nZXRWYWx1ZSgpIDsKCSAgICBEYXRlVGltZUZvcm1hdHRlciBmb3JtYXR0ZXIgPSBuZXcgRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyKCkucGFyc2VEZWZhdWx0aW5nKCBDaHJvbm9GaWVsZC5ZRUFSICwgeWVhck51bWJlciApLmFwcGVuZFBhdHRlcm4oICJNTS1kZCIpLnRvRm9ybWF0dGVyKCkgOwoJICAgIExvY2FsRGF0ZSBsZCA9IExvY2FsRGF0ZS5wYXJzZSggIjAyLTI4IiAsIGZvcm1hdHRlciApIDsKCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJsZC50b1N0cmluZygpOiAiICsgbGQgKSA7CiAgICAgICAgCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKAogICAgICAgIAkKCQkgICAgTW9udGhEYXkKCQkgICAgLnBhcnNlICgKCQkgICAgICAgICItLSIgKyAiMDItMjkiIAoJCSAgICApCgkJICAgIC5hdFllYXIoCgkJICAgICAgICBZZWFyLm5vdyggWm9uZUlkLm9mKCAiQXNpYS9Ub2t5byIgKSApLmdldFZhbHVlKCkKCQkgICAgKQoKICAgICAgICApOwogICAgCgl9Cn0=