/** * Constructor. * * @param field the field to wrap, like "year()". * @param offset offset to add to field values * @throws IllegalArgumentException if offset is zero */ public OffsetDateTimeField(DateTimeField field, int offset) { this( field, (field == null ? null : field.getType()), offset, Integer.MIN_VALUE, Integer.MAX_VALUE); }
/** * Constructor. * * @param field the field to wrap, like "year()". * @param type the field type this field actually uses * @param offset offset to add to field values * @param minValue minimum allowed value * @param maxValue maximum allowed value * @throws IllegalArgumentException if offset is zero */ public OffsetDateTimeField( DateTimeField field, DateTimeFieldType type, int offset, int minValue, int maxValue) { super(field, type); if (offset == 0) { throw new IllegalArgumentException("The offset cannot be zero"); } iOffset = offset; if (minValue < (field.getMinimumValue() + offset)) { iMin = field.getMinimumValue() + offset; } else { iMin = minValue; } if (maxValue > (field.getMaximumValue() + offset)) { iMax = field.getMaximumValue() + offset; } else { iMax = maxValue; } }
/** * Get the value of one of the fields of a datetime. * * <p>This could be used to get a field using a different Chronology. For example: * * <pre> * Instant dt = new Instant(); * int gjYear = dt.get(Chronology.getCoptic().year()); * </pre> * * @param field the DateTimeField to use, not null * @return the value * @throws IllegalArgumentException if the field is null */ public int get(DateTimeField field) { if (field == null) { throw new IllegalArgumentException("The DateTimeField must not be null"); } return field.get(getMillis()); }