@Override public DateTimeUnit fromIso( DateTimeUnit dateTimeUnit ) { return super.fromIso( dateTimeUnit ); }
@Override public int week( DateTimeUnit dateTimeUnit ) { return isoWeek( dateTimeUnit ); }
@Override public DateInterval toInterval( DateTimeUnit dateTimeUnit, DateIntervalType type, int offset, int length ) { switch ( type ) { case ISO8601_YEAR: return toYearIsoInterval( dateTimeUnit, offset, length ); case ISO8601_MONTH: return toMonthIsoInterval( dateTimeUnit, offset, length ); case ISO8601_WEEK: return toWeekIsoInterval( dateTimeUnit, offset, length ); case ISO8601_DAY: return toDayIsoInterval( dateTimeUnit, offset, length ); } return null; }
private DateInterval toDayIsoInterval( DateTimeUnit dateTimeUnit, int offset, int length ) { DateTime from = dateTimeUnit.toJodaDateTime( chronology ); if ( offset > 0 ) { from = from.plusDays( offset ); } else if ( offset < 0 ) { from = from.minusDays( -offset ); } DateTime to = new DateTime( from ).plusDays( length ); DateTimeUnit fromDateTimeUnit = DateTimeUnit.fromJodaDateTime( from ); DateTimeUnit toDateTimeUnit = DateTimeUnit.fromJodaDateTime( to ); fromDateTimeUnit.setDayOfWeek( isoWeekday( fromDateTimeUnit ) ); toDateTimeUnit.setDayOfWeek( isoWeekday( toDateTimeUnit ) ); return new DateInterval( toIso( fromDateTimeUnit ), toIso( toDateTimeUnit ), DateIntervalType.ISO8601_DAY ); }
@Override public DateTimeUnit isoStartOfYear( int year ) { return fromIso( super.isoStartOfYear( year ) ); } }
@Override public DateTimeUnit toIso( DateTimeUnit dateTimeUnit ) { if ( dateTimeUnit.getMonth() > 12 ) { throw new RuntimeException( "Illegal month, must be between 1 and 12, was given " + dateTimeUnit.getMonth() ); } return super.toIso( dateTimeUnit ); }
private DateInterval toYearIsoInterval( DateTimeUnit dateTimeUnit, int offset, int length ) { DateTime from = dateTimeUnit.toJodaDateTime( chronology ); if ( offset > 0 ) { from = from.plusYears( offset ); } else if ( offset < 0 ) { from = from.minusYears( -offset ); } DateTime to = new DateTime( from ).plusYears( length ).minusDays( 1 ); DateTimeUnit fromDateTimeUnit = DateTimeUnit.fromJodaDateTime( from ); DateTimeUnit toDateTimeUnit = DateTimeUnit.fromJodaDateTime( to ); fromDateTimeUnit.setDayOfWeek( isoWeekday( fromDateTimeUnit ) ); toDateTimeUnit.setDayOfWeek( isoWeekday( toDateTimeUnit ) ); return new DateInterval( toIso( fromDateTimeUnit ), toIso( toDateTimeUnit ), DateIntervalType.ISO8601_YEAR ); }
private DateInterval toWeekIsoInterval( DateTimeUnit dateTimeUnit, int offset, int length ) { DateTime from = dateTimeUnit.toJodaDateTime( chronology ); if ( offset > 0 ) { from = from.plusWeeks( offset ); } else if ( offset < 0 ) { from = from.minusWeeks( -offset ); } DateTime to = new DateTime( from ).plusWeeks( length ).minusDays( 1 ); DateTimeUnit fromDateTimeUnit = DateTimeUnit.fromJodaDateTime( from ); DateTimeUnit toDateTimeUnit = DateTimeUnit.fromJodaDateTime( to ); fromDateTimeUnit.setDayOfWeek( isoWeekday( fromDateTimeUnit ) ); toDateTimeUnit.setDayOfWeek( isoWeekday( toDateTimeUnit ) ); return new DateInterval( toIso( fromDateTimeUnit ), toIso( toDateTimeUnit ), DateIntervalType.ISO8601_WEEK ); }
@Override public DateTimeUnit fromIso( Date date ) { return fromIso( DateTimeUnit.fromJdkDate( date ) ); }
private DateInterval toMonthIsoInterval( DateTimeUnit dateTimeUnit, int offset, int length ) { DateTime from = dateTimeUnit.toJodaDateTime( chronology ); if ( offset > 0 ) { from = from.plusMonths( offset ); } else if ( offset < 0 ) { from = from.minusMonths( -offset ); } DateTime to = new DateTime( from ).plusMonths( length ).minusDays( 1 ); DateTimeUnit fromDateTimeUnit = DateTimeUnit.fromJodaDateTime( from ); DateTimeUnit toDateTimeUnit = DateTimeUnit.fromJodaDateTime( to ); fromDateTimeUnit.setDayOfWeek( isoWeekday( fromDateTimeUnit ) ); toDateTimeUnit.setDayOfWeek( isoWeekday( toDateTimeUnit ) ); return new DateInterval( toIso( fromDateTimeUnit ), toIso( toDateTimeUnit ), DateIntervalType.ISO8601_MONTH ); }
@Override public DateTimeUnit fromIso( Date date ) { DateTimeUnit dateTimeUnit = super.fromIso( date ); if ( dateTimeUnit.getMonth() > 12 ) { throw new RuntimeException( "Illegal month, must be between 1 and 12, was given " + dateTimeUnit.getMonth() ); } return dateTimeUnit; }