@Override public DateTimeUnit isoStartOfYear( int year ) { return new DateTimeUnit( year, 1, 1 ); }
/** * @param year the year starting at AD 1. * @param month the month starting at 1. * @param day the day of the month starting at 1. * @param iso8601 is this period an iso period */ public Cal( int year, int month, int day, boolean iso8601 ) { dateTimeUnit = new DateTimeUnit( year, month, day, iso8601 ); }
/** * @param year the year starting at AD 1. * @param month the month starting at 1. * @param day the day of the month starting at 1. */ public Cal( int year, int month, int day ) { dateTimeUnit = new DateTimeUnit( year, month, day ); }
/** * Sets the current time. * * @param year the year starting at AD 1. * @param month the month starting at 1. * @param day the day of the month starting at 1. */ public Cal set( int year, int month, int day ) { dateTimeUnit = new DateTimeUnit( year, month, day ); return this; }
/** * Converts from Joda-Time DateTime to DateUnit * * @param dateTime DateTime object * @return Populated DateUnit object */ public static DateTimeUnit fromJodaDateTime( DateTime dateTime ) { return new DateTimeUnit( dateTime.getYear(), dateTime.getMonthOfYear(), dateTime.getDayOfMonth(), dateTime.getDayOfWeek() ); }
@Override public DateTimeUnit isoStartOfYear( int year ) { int day = 21; int[] twenties = new int[]{ 1375, 1379, 1383, 1387, 1391, 1395, 1399, 1403, 1407, 1408, 1411, 1412, 1415, 1416, 1419 }; if ( contains( twenties, year ) ) { day = 20; } return new DateTimeUnit( year + 621, 3, day, java.util.Calendar.FRIDAY, true ); }
@Override public DateTimeUnit toIso( int year, int month, int day ) { return toIso( new DateTimeUnit( year, month, day ) ); }
@Override public DateTimeUnit fromIso( int year, int month, int day ) { return fromIso( new DateTimeUnit( year, month, day, true ) ); }
@Override public DateTimeUnit today() { DateTime dateTime = DateTime.now( ISOChronology.getInstance( DateTimeZone.getDefault() ) ); DateTimeUnit dateTimeUnit = new DateTimeUnit( dateTime.getYear(), dateTime.getMonthOfYear(), dateTime.getDayOfMonth(), true ); return fromIso( dateTimeUnit ); }
@Override public Period createPeriod( DateTimeUnit dateTimeUnit, Calendar calendar ) { DateTimeUnit start = adjustToStartOfWeek( new DateTimeUnit( dateTimeUnit ), calendar ); DateTimeUnit end = new DateTimeUnit( start ); end = calendar.plusDays( end, calendar.daysInWeek() - 1 ); return toIsoPeriod( start, end, calendar ); }
@Override public Period createPeriod( DateTimeUnit dateTimeUnit, Calendar calendar ) { DateTimeUnit start = adjustToStartOfBiWeek( new DateTimeUnit( dateTimeUnit ), calendar ); DateTimeUnit end = new DateTimeUnit( start ); end = calendar.plusDays( end, calendar.daysInWeek() * 2 - 1 ); return toIsoPeriod( start, end, calendar ); }
@Override public Period createPeriod( DateTimeUnit dateTimeUnit, Calendar calendar ) { DateTimeUnit start = new DateTimeUnit( dateTimeUnit ); start.setDay( 1 ); DateTimeUnit end = new DateTimeUnit( dateTimeUnit ); end.setDay( calendar.daysInMonth( end.getYear(), end.getMonth() ) ); return toIsoPeriod( start, end, calendar ); }
@Override public Period createPeriod( DateTimeUnit dateTimeUnit, Calendar calendar ) { DateTimeUnit start = new DateTimeUnit( dateTimeUnit ); DateTimeUnit end = new DateTimeUnit( dateTimeUnit ); start.setDay( 1 ); start.setMonth( 1 ); end.setMonth( calendar.monthsInYear() ); end.setDay( calendar.daysInMonth( end.getYear(), end.getMonth() ) ); return toIsoPeriod( start, end, calendar ); }
@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 Period createPeriod( DateTimeUnit dateTimeUnit, Calendar calendar ) { DateTimeUnit start = new DateTimeUnit( dateTimeUnit ); start.setMonth( ((start.getMonth() - 1) - ((start.getMonth() - 1) % 2)) + 1 ); start.setDay( 1 ); DateTimeUnit end = new DateTimeUnit( start ); end = calendar.plusMonths( end, 1 ); end.setDay( calendar.daysInMonth( end.getYear(), end.getMonth() ) ); return toIsoPeriod( start, end, calendar ); }
@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; }
@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 Period createPeriod( DateTimeUnit dateTimeUnit, org.hisp.dhis.calendar.Calendar calendar ) { DateTimeUnit start = new DateTimeUnit( dateTimeUnit ); int baseMonth = getBaseMonth(); int year = start.getMonth() < baseMonth ? (start.getYear() - 1) : start.getYear(); int month = start.getMonth() >= baseMonth && start.getMonth() < (baseMonth + 6) ? baseMonth : (baseMonth + 6); start.setYear( year ); start.setMonth( month ); start.setDay( 1 ); DateTimeUnit end = new DateTimeUnit( start ); end = calendar.plusMonths( end, 5 ); end.setDay( calendar.daysInMonth( end.getYear(), end.getMonth() ) ); return toIsoPeriod( start, end, calendar ); }