/* 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.TemporalAdjusters;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
LocalDate firstOfMonth = today.with( TemporalAdjusters.firstDayOfMonth() );
LocalDate firstOfNextMonth = today.with( TemporalAdjusters.firstDayOfNextMonth() );
LocalDate ld = firstOfMonth;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate( FormatStyle.SHORT ).withLocale( locale );
System.
out.
println( ld.
getMonth().
getDisplayName( TextStyle.
FULL , locale
) ); // Print localized name of the month being reported. do {
System.
out.
println( ld.
format( f
) ); // Create String representing this date. // Prepare for next loop. Move to next day.
ld = ld.plusDays( 1 );
} while ( ld.isBefore( firstOfNextMonth ) );
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnRpbWUuKjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuKjsKaW1wb3J0IGphdmEudGltZS50ZW1wb3JhbC5UZW1wb3JhbEFkanVzdGVyczsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJWm9uZUlkIHogPSBab25lSWQub2YoICJBbWVyaWNhL01vbnRyZWFsIiApOwogICAgCUxvY2FsRGF0ZSB0b2RheSA9IExvY2FsRGF0ZS5ub3coIHogKTsKCQlMb2NhbERhdGUgZmlyc3RPZk1vbnRoID0gdG9kYXkud2l0aCggVGVtcG9yYWxBZGp1c3RlcnMuZmlyc3REYXlPZk1vbnRoKCkgKTsKCgkJTG9jYWxEYXRlIGZpcnN0T2ZOZXh0TW9udGggPSB0b2RheS53aXRoKCBUZW1wb3JhbEFkanVzdGVycy5maXJzdERheU9mTmV4dE1vbnRoKCkgKTsKCQlMb2NhbERhdGUgbGQgPSBmaXJzdE9mTW9udGg7CgkJTG9jYWxlIGxvY2FsZSA9IExvY2FsZS5DQU5BREFfRlJFTkNIIDsKCQlEYXRlVGltZUZvcm1hdHRlciBmID0gRGF0ZVRpbWVGb3JtYXR0ZXIub2ZMb2NhbGl6ZWREYXRlKCBGb3JtYXRTdHlsZS5TSE9SVCApLndpdGhMb2NhbGUoIGxvY2FsZSApOwoJCVN5c3RlbS5vdXQucHJpbnRsbiggbGQuZ2V0TW9udGgoKS5nZXREaXNwbGF5TmFtZSggVGV4dFN0eWxlLkZVTEwgLCBsb2NhbGUgKSApOyAgLy8gUHJpbnQgbG9jYWxpemVkIG5hbWUgb2YgdGhlIG1vbnRoIGJlaW5nIHJlcG9ydGVkLgoJCWRvIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKCBsZC5mb3JtYXQoIGYgKSApOyAgLy8gQ3JlYXRlIFN0cmluZyByZXByZXNlbnRpbmcgdGhpcyBkYXRlLgoJCQkvLyBQcmVwYXJlIGZvciBuZXh0IGxvb3AuIE1vdmUgdG8gbmV4dCBkYXkuCgkJCWxkID0gbGQucGx1c0RheXMoIDEgKTsKCQl9IHdoaWxlICggbGQuaXNCZWZvcmUoIGZpcnN0T2ZOZXh0TW9udGggKSApOwoJfQp9