=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/Calendar.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/Calendar.java 2014-04-24 17:18:03 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/Calendar.java 2014-04-25 06:29:27 +0000 @@ -50,4 +50,12 @@ int daysInYear( int year ); int daysInMonth( int year, int month ); + + int isoWeek( DateUnit dateUnit ); + + int week( DateUnit dateUnit ); + + int isoWeekday( DateUnit dateUnit ); + + int weekday( DateUnit dateUnit ); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/ChronologyBasedCalendar.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/ChronologyBasedCalendar.java 2014-04-24 17:18:03 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/ChronologyBasedCalendar.java 2014-04-25 06:29:27 +0000 @@ -56,9 +56,7 @@ @Override public DateUnit fromIso( DateUnit dateUnit ) { - DateTime dateTime = dateUnit.toDateTime(); - dateTime = dateTime.withChronology( chronology ); - + DateTime dateTime = dateUnit.toDateTime( chronology ); return DateUnit.fromDateTime( dateTime ); } @@ -89,4 +87,30 @@ DateTime dateTime = new DateTime( year, month, 1, 0, 0, chronology ); return (int) dateTime.monthOfYear().toInterval().toDuration().getStandardDays(); } + + @Override + public int isoWeek( DateUnit dateUnit ) + { + DateTime dateTime = dateUnit.toDateTime( chronology ); + return dateTime.getWeekOfWeekyear(); + } + + @Override + public int week( DateUnit dateUnit ) + { + return isoWeek( dateUnit ); + } + + @Override + public int isoWeekday( DateUnit dateUnit ) + { + DateTime dateTime = dateUnit.toDateTime( chronology ); + return dateTime.getDayOfWeek(); + } + + @Override + public int weekday( DateUnit dateUnit ) + { + return isoWeekday( dateUnit ); + } } === added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/DateInterval.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/DateInterval.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/DateInterval.java 2014-04-25 06:29:27 +0000 @@ -0,0 +1,63 @@ +package org.hisp.dhis.calendar; + +/* + * Copyright (c) 2004-2014, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @author Morten Olav Hansen + */ +public class DateInterval +{ + private final DateUnit from; + + private final DateUnit to; + + public DateInterval( DateUnit from, DateUnit to ) + { + this.from = from; + this.to = to; + } + + public DateUnit getFrom() + { + return from; + } + + public DateUnit getTo() + { + return to; + } + + @Override public String toString() + { + return "DateInterval{" + + "from=" + from + + ", to=" + to + + '}'; + } +} === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/NepaliCalendar.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/NepaliCalendar.java 2014-04-24 17:18:03 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/calendar/NepaliCalendar.java 2014-04-25 06:29:27 +0000 @@ -30,6 +30,7 @@ import org.joda.time.DateTime; import org.joda.time.Days; +import org.joda.time.chrono.ISOChronology; import java.util.HashMap; import java.util.Map; @@ -131,6 +132,39 @@ return conversionMap.get( year )[month]; } + @Override + public int isoWeek( DateUnit dateUnit ) + { + DateTime dateTime = toIso( dateUnit ).toDateTime( ISOChronology.getInstance() ); + return dateTime.getWeekyear(); + } + + @Override + public int week( DateUnit dateUnit ) + { + return isoWeek( dateUnit ); + } + + @Override + public int isoWeekday( DateUnit dateUnit ) + { + DateTime dateTime = toIso( dateUnit ).toDateTime( ISOChronology.getInstance() ); + return dateTime.getDayOfWeek(); + } + + @Override + public int weekday( DateUnit dateUnit ) + { + int dayOfWeek = (isoWeekday( dateUnit ) + 1); + + if ( dayOfWeek > 7 ) + { + return 1; + } + + return dayOfWeek; + } + private int getYearTotal( int year ) { // if year total index is uninitialized, calculate and set in array