Author: bleny Date: 2010-12-23 12:15:31 +0100 (Thu, 23 Dec 2010) New Revision: 1984 Url: http://nuiton.org/repositories/revision/nuiton-utils/1984 Log: fix issue #1159 Modified: trunk/src/main/java/org/nuiton/util/PeriodDates.java trunk/src/test/java/org/nuiton/util/PeriodDatesTest.java Modified: trunk/src/main/java/org/nuiton/util/PeriodDates.java =================================================================== --- trunk/src/main/java/org/nuiton/util/PeriodDates.java 2010-12-23 09:29:07 UTC (rev 1983) +++ trunk/src/main/java/org/nuiton/util/PeriodDates.java 2010-12-23 11:15:31 UTC (rev 1984) @@ -127,9 +127,15 @@ throw new NullPointerException("fromDate or thruDate can't be null to" + " change dayOfMonth extremities"); } - fromCalendar.set(Calendar.DAY_OF_MONTH, 1); - int maximum = thruCalendar.getActualMaximum(Calendar.DAY_OF_MONTH); - thruCalendar.set(Calendar.DAY_OF_MONTH, maximum); + Date fromDate = fromCalendar.getTime(); + fromDate = DateUtil.setFirstDayOfMonth(fromDate); + fromDate = DateUtil.setMinTimeOfDay(fromDate); + fromCalendar.setTime(fromDate); + + Date thruDate = thruCalendar.getTime(); + thruDate = DateUtil.setLastDayOfMonth(thruDate); + thruDate = DateUtil.setMaxTimeOfDay(thruDate); + thruCalendar.setTime(thruDate); } public void setFromDate(Date fromDate) { Modified: trunk/src/test/java/org/nuiton/util/PeriodDatesTest.java =================================================================== --- trunk/src/test/java/org/nuiton/util/PeriodDatesTest.java 2010-12-23 09:29:07 UTC (rev 1983) +++ trunk/src/test/java/org/nuiton/util/PeriodDatesTest.java 2010-12-23 11:15:31 UTC (rev 1984) @@ -37,6 +37,7 @@ import java.text.DateFormat; import java.util.Calendar; import java.util.Date; +import java.util.GregorianCalendar; import java.util.List; /** @author fdesbois */ @@ -81,9 +82,23 @@ } /** Test of initDayOfMonthExtremities method, of class PeriodDates. */ - //@Test + @Test public void testInitDayOfMonthExtremities() { log.info("initDayOfMonthExtremities"); + + PeriodDates period = new PeriodDates(); + period.setFromDate(DateUtil.createDate(9,8,7,23,12,2010)); + period.setThruDate(DateUtil.createDate(6,5,4,26,12,2010)); + + period.initDayOfMonthExtremities(); + + Assert.assertTrue(period.between(DateUtil.createDate(3,2,1,1,12,2010))); + + Calendar lastDayOf2010 = new GregorianCalendar(2010,11,31,23,59,59); + lastDayOf2010.set(Calendar.MILLISECOND, 999); + + Assert.assertEquals(DateUtil.createDate(0,0,0,1,12,2010), period.getFromDate()); + Assert.assertEquals(lastDayOf2010.getTime(), period.getThruDate()); } /** Test of setFromDate method, of class PeriodDates. */