@Override public DateTimeUnit minusDays( DateTimeUnit dateTimeUnit, int days ) { DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime.minusDays( days ), dateTimeUnit.isIso8601() ); }
@Override public DateTimeUnit plusDays( DateTimeUnit dateTimeUnit, int days ) { DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime.plusDays( days ), dateTimeUnit.isIso8601() ); }
@Override public DateTimeUnit minusWeeks( DateTimeUnit dateTimeUnit, int weeks ) { DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime.minusWeeks( weeks ), dateTimeUnit.isIso8601() ); }
@Override public DateTimeUnit plusMonths( DateTimeUnit dateTimeUnit, int months ) { DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime.plusMonths( months ), dateTimeUnit.isIso8601() ); }
@Override public DateTimeUnit plusYears( DateTimeUnit dateTimeUnit, int years ) { DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime.plusYears( years ), dateTimeUnit.isIso8601() ); }
@Override public DateTimeUnit plusWeeks( DateTimeUnit dateTimeUnit, int weeks ) { DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime.plusWeeks( weeks ), dateTimeUnit.isIso8601() ); }
@Override public DateTimeUnit minusYears( DateTimeUnit dateTimeUnit, int years ) { DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime.minusYears( years ), dateTimeUnit.isIso8601() ); }
@Override public DateTimeUnit minusMonths( DateTimeUnit dateTimeUnit, int months ) { DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime.minusMonths( months ), dateTimeUnit.isIso8601() ); }
@Override public String getIsoDate( DateTimeUnit dateTimeUnit, Calendar calendar ) { int month = dateTimeUnit.getMonth(); if ( dateTimeUnit.isIso8601() ) { month = calendar.fromIso( dateTimeUnit ).getMonth(); } switch ( month ) { case 1: return dateTimeUnit.getYear() + "S1"; case 7: return dateTimeUnit.getYear() + "S2"; default: throw new IllegalArgumentException( String.format( "Month not valid [1,7]: %d", month ) ); } }
public DateTimeUnit( DateTimeUnit dateTimeUnit ) { this( dateTimeUnit.isIso8601() ); this.year = dateTimeUnit.getYear(); this.month = dateTimeUnit.getMonth(); this.day = dateTimeUnit.getDay(); this.dayOfWeek = dateTimeUnit.getDayOfWeek(); }
@Override public String getIsoDate( DateTimeUnit dateTimeUnit, Calendar calendar ) { int month = dateTimeUnit.getMonth(); if ( dateTimeUnit.isIso8601() ) { month = calendar.fromIso( dateTimeUnit ).getMonth(); } switch ( month ) { case 11: return dateTimeUnit.getYear() + 1 + "NovS1"; case 5: return dateTimeUnit.getYear() + "NovS2"; default: throw new IllegalArgumentException( "Month not valid [11,5]" ); } }
@Override public String getIsoDate( DateTimeUnit dateTimeUnit, Calendar calendar ) { int month = dateTimeUnit.getMonth(); if ( dateTimeUnit.isIso8601() ) { month = calendar.fromIso( dateTimeUnit ).getMonth(); } switch ( month ) { case 4: return dateTimeUnit.getYear() + "AprilS1"; case 10: return dateTimeUnit.getYear() + "AprilS2"; default: throw new IllegalArgumentException( "Month not valid [4,10]" ); } }
@Override public DateTimeUnit fromIso( DateTimeUnit dateTimeUnit ) { if ( !dateTimeUnit.isIso8601() ) { return dateTimeUnit; } DateTime dateTime = dateTimeUnit.toJodaDateTime( ISOChronology.getInstance( DateTimeZone.forTimeZone( dateTimeUnit.getTimeZone() ) ) ); dateTime = dateTime.withChronology( chronology ); return DateTimeUnit.fromJodaDateTime( dateTime ); }
@Override public String getIsoDate( DateTimeUnit dateTimeUnit, Calendar calendar ) { DateTimeUnit newUnit = dateTimeUnit; if ( !calendar.name().equals( ISO_CALENDAR_NAME ) && newUnit.isIso8601() ) { newUnit = calendar.fromIso( newUnit ); } switch ( newUnit.getMonth() ) { case 1: return newUnit.getYear() + "Q1"; case 4: return newUnit.getYear() + "Q2"; case 7: return newUnit.getYear() + "Q3"; case 10: return newUnit.getYear() + "Q4"; default: throw new IllegalArgumentException( "Month not valid [1,4,7,10], was given " + dateTimeUnit.getMonth() ); } }
@Override public DateTimeUnit toIso( DateTimeUnit dateTimeUnit ) { if ( dateTimeUnit.isIso8601() ) { return dateTimeUnit; } DateTime dateTime = dateTimeUnit.toJodaDateTime( chronology ); dateTime = dateTime.withChronology( ISOChronology.getInstance( DateTimeZone.forTimeZone( dateTimeUnit.getTimeZone() ) ) ); return new DateTimeUnit( DateTimeUnit.fromJodaDateTime( dateTime ), true ); }
@Override public DateTimeUnit toIso( DateTimeUnit dateTimeUnit ) { if ( dateTimeUnit.isIso8601() ) { return dateTimeUnit; } DateTime dateTime = START_ISO.toJodaDateTime(); int totalDays = 0; for ( int year = START_NEPAL.getYear(); year < dateTimeUnit.getYear(); year++ ) { totalDays += getYearTotal( year ); } for ( int month = START_NEPAL.getMonth(); month < dateTimeUnit.getMonth(); month++ ) { totalDays += CONVERSION_MAP.get( dateTimeUnit.getYear() )[month]; } totalDays += dateTimeUnit.getDay() - START_NEPAL.getDay(); dateTime = dateTime.plusDays( totalDays ); return new DateTimeUnit( DateTimeUnit.fromJodaDateTime( dateTime ), true ); }