public DateTimeUnit( DateTimeUnit dateTimeUnit, boolean iso8601 ) { this( iso8601 ); this.year = dateTimeUnit.getYear(); this.month = dateTimeUnit.getMonth(); this.day = dateTimeUnit.getDay(); this.dayOfWeek = dateTimeUnit.getDayOfWeek(); }
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 DateTimeUnit minusDays( DateTimeUnit dateTimeUnit, int days ) { int curYear = dateTimeUnit.getYear(); int curMonth = dateTimeUnit.getMonth(); int curDay = dateTimeUnit.getDay(); int dayOfWeek = dateTimeUnit.getDayOfWeek(); while ( days != 0 ) { curDay--; if ( curDay == 0 ) { curMonth--; if ( curMonth == 0 ) { curYear--; curMonth = 12; } curDay = CONVERSION_MAP.get( curYear )[curMonth]; } dayOfWeek--; if ( dayOfWeek == 0 ) { dayOfWeek = 7; } days--; } return new DateTimeUnit( curYear, curMonth, curDay, dayOfWeek ); }
@Override public DateTimeUnit minusYears( DateTimeUnit dateTimeUnit, int years ) { DateTimeUnit result = new DateTimeUnit( dateTimeUnit.getYear() - years, dateTimeUnit.getMonth(), dateTimeUnit.getDay(), dateTimeUnit.getDayOfWeek() ); updateDateUnit( result ); return result; }
int curMonth = dateTimeUnit.getMonth(); int curDay = dateTimeUnit.getDay(); int dayOfWeek = dateTimeUnit.getDayOfWeek();
@Override public DateTimeUnit plusYears( DateTimeUnit dateTimeUnit, int years ) { DateTimeUnit result = new DateTimeUnit( dateTimeUnit.getYear() + years, dateTimeUnit.getMonth(), dateTimeUnit.getDay(), dateTimeUnit.getDayOfWeek() ); updateDateUnit( result ); return result; }
@Override public DateTimeUnit minusYears( DateTimeUnit dateTimeUnit, int years ) { DateTimeUnit result = new DateTimeUnit( dateTimeUnit.getYear() - years, dateTimeUnit.getMonth(), dateTimeUnit.getDay(), dateTimeUnit.getDayOfWeek() ); updateDateUnit( result ); return result; }
@Override public DateTimeUnit plusYears( DateTimeUnit dateTimeUnit, int years ) { DateTimeUnit result = new DateTimeUnit( dateTimeUnit.getYear() + years, dateTimeUnit.getMonth(), dateTimeUnit.getDay(), dateTimeUnit.getDayOfWeek() ); updateDateUnit( result ); return result; }
int curMonth = dateTimeUnit.getMonth(); int curDay = dateTimeUnit.getDay(); int dayOfWeek = dateTimeUnit.getDayOfWeek();
@Override public DateTimeUnit minusDays( DateTimeUnit dateTimeUnit, int days ) { int curYear = dateTimeUnit.getYear(); int curMonth = dateTimeUnit.getMonth(); int curDay = dateTimeUnit.getDay(); int dayOfWeek = dateTimeUnit.getDayOfWeek(); while ( days != 0 ) { curDay--; if ( curDay == 0 ) { curMonth--; if ( curMonth == 0 ) { curYear--; curMonth = 12; } curDay = 30; } dayOfWeek--; if ( dayOfWeek == 0 ) { dayOfWeek = 7; } days--; } return new DateTimeUnit( curYear, curMonth, curDay, dayOfWeek ); }
int curMonth = dateTimeUnit.getMonth(); int curDay = dateTimeUnit.getDay(); int dayOfWeek = dateTimeUnit.getDayOfWeek(); int newDays = days;
@Override public DateTimeUnit minusDays( DateTimeUnit dateTimeUnit, int days ) { int curYear = dateTimeUnit.getYear(); int curMonth = dateTimeUnit.getMonth(); int curDay = dateTimeUnit.getDay(); int dayOfWeek = dateTimeUnit.getDayOfWeek(); int newDays = days; while ( newDays != 0 ) { curDay--; if ( curDay == 0 ) { curMonth--; if ( curMonth == 0 ) { curYear--; curMonth = 12; } curDay = getDaysFromMap( curYear, curMonth ); } dayOfWeek--; if ( dayOfWeek == 0 ) { dayOfWeek = 7; } newDays--; } return new DateTimeUnit( curYear, curMonth, curDay, dayOfWeek ); }
@Override public DateTimeUnit fromIso( DateTimeUnit dateTimeUnit ) { if ( dateTimeUnit.getYear() >= START_PERSIAN.getYear() && dateTimeUnit.getYear() <= STOP_PERSIAN.getYear() ) { return new DateTimeUnit( dateTimeUnit.getYear(), dateTimeUnit.getMonth(), dateTimeUnit.getDay(), dateTimeUnit.getDayOfWeek(), false ); } if ( dateTimeUnit.getYear() < START_ISO.getYear() || dateTimeUnit.getYear() > STOP_ISO.getYear() ) { throw new InvalidCalendarParametersException( "Illegal ISO year, must be between " + START_ISO.getYear() + " and " + STOP_ISO.getYear() + ", was given " + dateTimeUnit.getYear() ); } DateTime start = START_ISO.toJodaDateTime(); DateTime end = dateTimeUnit.toJodaDateTime(); return plusDays( START_PERSIAN, Days.daysBetween( start, end ).getDays() ); }
@Override public DateTimeUnit toIso( DateTimeUnit dateTimeUnit ) { if ( dateTimeUnit.getYear() >= START_ISO.getYear() && dateTimeUnit.getYear() <= STOP_ISO.getYear() ) { return new DateTimeUnit( dateTimeUnit.getYear(), dateTimeUnit.getMonth(), dateTimeUnit.getDay(), dateTimeUnit.getDayOfWeek(), true ); } if ( dateTimeUnit.getYear() > STOP_PERSIAN.getYear() || dateTimeUnit.getYear() < START_PERSIAN.getYear() ) { throw new InvalidCalendarParametersException( "Illegal PERSIAN year, must be between " + START_PERSIAN.getYear() + " and " + STOP_PERSIAN.getYear() + ", was given " + dateTimeUnit.getYear() ); } DateTime dateTime = START_ISO.toJodaDateTime(); int totalDays = 0; for ( int year = START_PERSIAN.getYear(); year < dateTimeUnit.getYear(); year++ ) { totalDays += getYearTotal( year ); } for ( int month = START_PERSIAN.getMonth(); month < dateTimeUnit.getMonth(); month++ ) { totalDays += getDaysFromMap( dateTimeUnit.getYear(), month ); } totalDays += dateTimeUnit.getDay() - START_PERSIAN.getDay(); dateTime = dateTime.plusDays( totalDays ); return new DateTimeUnit( DateTimeUnit.fromJodaDateTime( dateTime ), true ); }