75. Extracting the months from a given quarter
This problem becomes quite easy to solve if we are familiar with JDK 8’s java.time.Month. Via this API, we can find the first month (0 for January, 1 for February, …) of a quarter containing the given LocalDate as Month.from(LocalDate).firstMonthOfQuarter().getValue().
Once we have the first month, it is easy to obtain the other two as follows:
public static List<String> quarterMonths(LocalDate ld) { List<String> qmonths = new ArrayList<>(); int qmonth = Month.from(ld) .firstMonthOfQuarter().getValue(); qmonths.add(Month.of(qmonth).name()); qmonths.add(Month.of(++qmonth).name()); qmonths.add(Month.of(++qmonth).name()); return qmonths; } How about passing the quarter itself as an argument? This can be done as a number (1, 2, 3, or 4) or as a string (Q1, Q2, Q3, or Q4). If the given quarter is a number, then the first month of the quarter can be obtained as quarter * 3 –...