int lengthOfMonth = (int) date.lengthOfMonth();
ChronoLocalDate end = date.with(ChronoField.DAY_OF_MONTH, lengthOfMonth);
end = end.plus(7 - end.get(ChronoField.DAY_OF_WEEK), ChronoUnit.DAYS);
// Back up to the beginning of the week including the 1st of the month
ChronoLocalDate start = date.with(ChronoField.DAY_OF_MONTH, 1);
start = start.minus(start.get(ChronoField.DAY_OF_WEEK), ChronoUnit.DAYS);
out.printf("%9s Month %2d, %4d%n", date.getChronology().getId(),
date.get(ChronoField.MONTH_OF_YEAR),
date.get(ChronoField.YEAR));
String[] colText = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};