import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.Locale;

public class Main {
	public static void main(String[] args) {
		//Test
		System.out.println(lastDateOfMonth(LocalDate.of(2014, 1, 13)));
		System.out.println(lastDateOfMonth(LocalDate.of(2014, 2, 13)));
		System.out.println(lastDateOfMonth(LocalDate.of(2016, 2, 13)));
		System.out.println(lastDateOfMonth(LocalDate.of(2014, 4, 13)));
	}
	
	static LocalDate lastDateOfMonth(LocalDate date) {
		DateTimeFormatter dtf = new DateTimeFormatterBuilder()
								.parseDefaulting(ChronoField.DAY_OF_MONTH, 31)
								.appendPattern("uuuu-MM")
								.toFormatter(Locale.ENGLISH);
		return LocalDate.parse(YearMonth.from(date).toString(), dtf);
	}
}
