/** * @dataProvider data_week */ public function test_WOWBY(LocalDate $date, DayOfWeek $dow, $week, $wby) { $weekDef = WeekFields::ISO(); $dowField = $weekDef->dayOfWeek(); $wowbyField = $weekDef->weekOfWeekBasedYear(); $yowbyField = $weekDef->weekBasedYear(); $this->assertEquals($date->get($dowField), $dow->getValue()); $this->assertEquals($date->get($wowbyField), $week); $this->assertEquals($date->get($yowbyField), $wby); }
/** * Gets the value of the specified field from this date-time as an {@code int}. * <p> * This queries this date-time for the value of the specified field. * The returned value will always be within the valid range of values for the field. * If it is not possible to return the value, because the field is not supported * or for some other reason, an exception is thrown. * <p> * If the field is a {@link ChronoField} then the query is implemented here. * The {@link #isSupported(TemporalField) supported fields} will return valid * values based on this date-time, except {@code NANO_OF_DAY}, {@code MICRO_OF_DAY}, * {@code EPOCH_DAY} and {@code PROLEPTIC_MONTH} which are too large to fit in * an {@code int} and throw a {@code DateTimeException}. * All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}. * <p> * If the field is not a {@code ChronoField}, then the result of this method * is obtained by invoking {@code TemporalField.getFrom(TemporalAccessor)} * passing {@code this} as the argument. Whether the value can be obtained, * and what the value represents, is determined by the field. * * @param TemporalField $field the field to get, not null * @return int the value for the field * @throws DateTimeException if a value for the field cannot be obtained or * the value is outside the range of valid values for the field * @throws UnsupportedTemporalTypeException if the field is not supported or * the range of values exceeds an {@code int} * @throws ArithmeticException if numeric overflow occurs */ public function get(TemporalField $field) { if ($field instanceof ChronoField) { $f = $field; return $f->isTimeBased() ? $this->time->get($field) : $this->date->get($field); } return parent::get($field); }