This example uses a predefined query from TemporalQueries class.
package com.logicbig.example.dayofweek;
import java.time.DayOfWeek;
import java.time.temporal.TemporalQueries;
import java.time.temporal.TemporalUnit;
public class QueryExample {
public static void main (String[] args) {
DayOfWeek d = DayOfWeek.FRIDAY;
TemporalUnit u = d.query(TemporalQueries.precision());
System.out.println(u);
}
}
Output
Days
This example creates a custom query which finds out if underlying TemporalAccessor object is at weekend.
package com.logicbig.example.dayofweek;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
import java.time.YearMonth;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalQuery;
public class QueryExample2 {
public static void main (String[] args) {
DayOfWeek d = LocalDate.of(1990, Month.DECEMBER, 2)
.minusYears(1)
.getDayOfWeek();
Boolean b = d.query(getWeekEndQuery());
System.out.println(b);
b = DayOfWeek.MONDAY.query(getWeekEndQuery());
System.out.println(b);
b = LocalDate.of(200, Month.JULY, 15)
.query(getWeekEndQuery());
System.out.println(b);
b = YearMonth.of(2005, Month.DECEMBER)
.query(getWeekEndQuery());
System.out.println(b);
}
public static TemporalQuery<Boolean> getWeekEndQuery () {
return temporal -> {
if (temporal.isSupported(ChronoField.DAY_OF_WEEK)) {
int i = temporal.get(ChronoField.DAY_OF_WEEK);
return i > 5;
}
return null;
};
}
}
Output
true
false
false
null