Java Reference
In-Depth Information
import static java.time.temporal.ChronoField.DAY_OF_MONTH;
import static java.time.temporal.ChronoField.DAY_OF_WEEK;
import static java.time.DayOfWeek.FRIDAY;
public class Friday13Query implements TemporalQuery<Boolean> {
public final static Friday13Query IS_FRIDAY_13 = new Friday13Query();
// Prevent outside code from creating objects of this class
private Friday13Query() {}
@Override
public Boolean queryFrom(TemporalAccessor temporal) {
if (temporal.isSupported(DAY_OF_MONTH) && temporal.isSupported(DAY_OF_WEEK)) {
int dayOfMonth = temporal.get(DAY_OF_MONTH);
int weekDay = temporal.get(DAY_OF_WEEK);
DayOfWeek dayOfWeek = DayOfWeek.of(weekDay);
if (dayOfMonth == 13 && dayOfWeek == FRIDAY) {
return Boolean.TRUE;
}
}
return Boolean.FALSE;
}
}
The following snippet of code uses the Friday13Query with three datetime objects. The first LocalDate falls on
Friday 13, as you can see in the output that the query returns true.
LocalDate ld1 = LocalDate.of(2013, 12, 13);
Boolean isFriday13 = ld1.query(Friday13Query.IS_FRIDAY_13);
System.out.println("Date: " + ld1 + ", isFriday13: " + isFriday13);
LocalDate ld2 = LocalDate.of(2014, 1, 10);
isFriday13 = ld2.query(Friday13Query.IS_FRIDAY_13);
System.out.println("Date: " + ld2 + ", isFriday13: " + isFriday13);
LocalTime lt = LocalTime.of(7, 30, 45);
isFriday13 = lt.query(Friday13Query.IS_FRIDAY_13);
System.out.println("Time: " + lt + ", isFriday13: " + isFriday13);
Date: 2013-12-13, isFriday13: true
Date: 2014-01-10, isFriday13: false
Time: 07:30:45, isFriday13: false
Listing 12-20 contains the code for a CustomQueries class. The class contains a static method isFriday13() .
The method reference for isFriday13() method can be used as a query.
Search WWH ::




Custom Search