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 –...