void DateTimeDayFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState) { if (!dateTimeFieldsState.hasDayOfMonth()) { setEmptyValue(); return; } const unsigned value = dateTimeFieldsState.dayOfMonth(); if (range().isInRange(static_cast<int>(value))) { setValueAsInteger(value); return; } setEmptyValue(); }
void DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState) { if (!dateTimeFieldsState.hasMonth()) { setEmptyValue(); return; } const unsigned value = dateTimeFieldsState.month() - 1; if (value >= symbolsSize()) { setEmptyValue(); return; } setValueAsInteger(value); }
void DateTimeSecondFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState) { if (!dateTimeFieldsState.hasSecond()) { setEmptyValue(); return; } const unsigned value = dateTimeFieldsState.second(); if (value > static_cast<unsigned>(maximum())) { setEmptyValue(); return; } setValueAsInteger(value); }
void DateTimeYearFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) { if (!dateTimeFieldsState.hasYear()) { setEmptyValue(dateForReadOnlyField); return; } const unsigned value = dateTimeFieldsState.year(); if (range().isInRange(static_cast<int>(value))) { setValueAsInteger(value); return; } setEmptyValue(dateForReadOnlyField); }
void DateTimeMinuteFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) { if (!dateTimeFieldsState.hasMinute()) { setEmptyValue(dateForReadOnlyField); return; } const unsigned value = dateTimeFieldsState.minute(); if (value > static_cast<unsigned>(maximum())) { setEmptyValue(dateForReadOnlyField); return; } setValueAsInteger(value); }
void DateTimeAMPMFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState) { if (dateTimeFieldsState.hasAMPM()) setValueAsInteger(dateTimeFieldsState.ampm()); else setEmptyValue(); }
void DateTimeAMPMFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState, const DateComponents& dateForReadOnlyField) { if (dateTimeFieldsState.hasAMPM()) setValueAsInteger(dateTimeFieldsState.ampm()); else setEmptyValue(dateForReadOnlyField); }
void DateTimeHourFieldElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState& dateTimeFieldsState) { if (!dateTimeFieldsState.hasHour()) { setEmptyValue(); return; } const int hour12 = dateTimeFieldsState.hour(); if (hour12 < 1 || hour12 > 12) { setEmptyValue(); return; } switch (maximum()) { case 11: DateTimeNumericFieldElement::setValueAsInteger(hour12 % 12); return; case 12: DateTimeNumericFieldElement::setValueAsInteger(hour12); return; case 23: if (dateTimeFieldsState.ampm() == DateTimeFieldsState::AMPMValuePM) DateTimeNumericFieldElement::setValueAsInteger((hour12 + 12) % 24); else DateTimeNumericFieldElement::setValueAsInteger(hour12 % 12); return; case 24: if (dateTimeFieldsState.ampm() == DateTimeFieldsState::AMPMValuePM) DateTimeNumericFieldElement::setValueAsInteger(hour12 == 12 ? 12 : hour12 + 12); else DateTimeNumericFieldElement::setValueAsInteger(hour12); return; default: ASSERT_NOT_REACHED(); } }