Qual é a responsabilidade dessas interfaces: TemporalAccessor e TemporalQuery do pacote java.time.temporal?
E dentro dessa classe o que elas estão fazendo?
`enum Quarter {
FIRST, SECOND, THIRD, FOURTH;
}
import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.*;
public class QuarterOfYearQuery implements TemporalQuery {
@Override
public Quarter queryFrom(TemporalAccessor temporal) {
LocalDate now = LocalDate.from(temporal);
if(now.isBefore(now.with(Month.APRIL).withDayOfMonth(1))) {
return Quarter.FIRST;
} else if(now.isBefore(now.with(Month.JULY).withDayOfMonth(1))) {
return Quarter.SECOND;
} else if(now.isBefore(now.with(Month.NOVEMBER).withDayOfMonth(1))) {
return Quarter.THIRD;
} else {
return Quarter.FOURTH;
}
}
}`