On 15 Mar 2014 10:27, "Benedikt Ritter" <brit...@apache.org> wrote:
>
> 2014-03-15 11:25 GMT+01:00 Benedikt Ritter <brit...@apache.org>:
>
> > I guess this one was introduced by me when I tried to fix LANG-951 :-)
> >
>
> The reporter doesn't seem to be amused... Does this call for a quit bug
fix
> release? I could prepare a RC today.

Might be a good idea. There's not really a work-around available.

Duncan

>
>
> >
> >
> > 2014-03-13 22:40 GMT+01:00 <djo...@apache.org>:
> >
> > Author: djones
> >> Date: Thu Mar 13 21:40:26 2014
> >> New Revision: 1577332
> >>
> >> URL: http://svn.apache.org/r1577332
> >> Log:
> >> LANG-987: DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns
wrong
> >> days, reported by Jay Xu.
> >>
> >> Modified:
> >>     commons/proper/lang/trunk/src/changes/changes.xml
> >>
> >>
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/DateUtils.java
> >>
> >>
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/DateUtilsFragmentTest.java
> >>
> >> Modified: commons/proper/lang/trunk/src/changes/changes.xml
> >> URL:
> >>
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/changes/changes.xml?rev=1577332&r1=1577331&r2=1577332&view=diff
> >>
> >>
==============================================================================
> >> --- commons/proper/lang/trunk/src/changes/changes.xml [utf-8]
(original)
> >> +++ commons/proper/lang/trunk/src/changes/changes.xml [utf-8] Thu Mar
13
> >> 21:40:26 2014
> >> @@ -22,6 +22,7 @@
> >>    <body>
> >>
> >>    <release version="3.4" date="TBA" description="TBA">
> >> +    <action issue="LANG-987" type="fix"
> >> dev="djones">DateUtils.getFragmentInDays(Date, Calendar.MONTH) returns
> >> wrong days</action>
> >>      <action issue="LANG-983" type="fix" dev="sebb">DurationFormatUtils
> >> does not describe format string fully</action>
> >>      <action issue="LANG-981" type="fix"
> >> dev="sebb">DurationFormatUtils#lexx does not detect unmatched quote
> >> char</action>
> >>      <action issue="LANG-984" type="fix" dev="sebb">DurationFormatUtils
> >> does not handle large durations correctly</action>
> >>
> >> Modified:
> >>
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/DateUtils.java
> >> URL:
> >>
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/DateUtils.java?rev=1577332&r1=1577331&r2=1577332&view=diff
> >>
> >>
==============================================================================
> >> ---
> >>
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/DateUtils.java
> >> (original)
> >> +++
> >>
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/DateUtils.java
> >> Thu Mar 13 21:40:26 2014
> >> @@ -1690,13 +1690,15 @@ public class DateUtils {
> >>          final long millisPerUnit = getMillisPerUnit(unit);
> >>          long result = 0;
> >>
> >> +        int offset = (unit == Calendar.DAY_OF_YEAR) ? 0 : 1;
> >> +
> >>          // Fragments bigger than a day require a breakdown to days
> >>          switch (fragment) {
> >>              case Calendar.YEAR:
> >> -                result += ((calendar.get(Calendar.DAY_OF_YEAR) -1) *
> >> MILLIS_PER_DAY) / millisPerUnit;
> >> +                result += ((calendar.get(Calendar.DAY_OF_YEAR) -
offset)
> >> * MILLIS_PER_DAY) / millisPerUnit;
> >>                  break;
> >>              case Calendar.MONTH:
> >> -                result += ((calendar.get(Calendar.DAY_OF_MONTH) -1) *
> >> MILLIS_PER_DAY) / millisPerUnit;
> >> +                result += ((calendar.get(Calendar.DAY_OF_MONTH) -
> >> offset) * MILLIS_PER_DAY) / millisPerUnit;
> >>                  break;
> >>              default:
> >>                  break;
> >>
> >> Modified:
> >>
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/DateUtilsFragmentTest.java
> >> URL:
> >>
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/DateUtilsFragmentTest.java?rev=1577332&r1=1577331&r2=1577332&view=diff
> >>
> >>
==============================================================================
> >> ---
> >>
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/DateUtilsFragmentTest.java
> >> (original)
> >> +++
> >>
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/DateUtilsFragmentTest.java
> >> Thu Mar 13 21:40:26 2014
> >> @@ -561,4 +561,32 @@ testResult);
> >>                          / DateUtils.MILLIS_PER_HOUR,
> >>                  testResult);
> >>      }
> >> +
> >> +    @Test
> >> +    public void testDaysOfMonthWithCalendar() throws Exception {
> >> +        final long testResult = DateUtils.getFragmentInDays(aCalendar,
> >> Calendar.MONTH);
> >> +        assertEquals(days, testResult);
> >> +    }
> >> +
> >> +    @Test
> >> +    public void testDaysOfMonthWithDate() throws Exception {
> >> +        final long testResult = DateUtils.getFragmentInDays(aDate,
> >> Calendar.MONTH);
> >> +        final Calendar cal = Calendar.getInstance();
> >> +        cal.setTime(aDate);
> >> +        assertEquals(cal.get(Calendar.DAY_OF_MONTH), testResult);
> >> +    }
> >> +
> >> +    @Test
> >> +    public void testDaysOfYearWithCalendar() throws Exception {
> >> +        final long testResult = DateUtils.getFragmentInDays(aCalendar,
> >> Calendar.YEAR);
> >> +        assertEquals(aCalendar.get(Calendar.DAY_OF_YEAR), testResult);
> >> +    }
> >> +
> >> +    @Test
> >> +    public void testDaysOfYearWithDate() throws Exception {
> >> +        final long testResult = DateUtils.getFragmentInDays(aDate,
> >> Calendar.YEAR);
> >> +        final Calendar cal = Calendar.getInstance();
> >> +        cal.setTime(aDate);
> >> +        assertEquals(cal.get(Calendar.DAY_OF_YEAR), testResult);
> >> +    }
> >>  }
> >>
> >>
> >>
> >
> >
> > --
> > http://people.apache.org/~britter/
> > http://www.systemoutprintln.de/
> > http://twitter.com/BenediktRitter
> > http://github.com/britter
> >
>
>
>
> --
> http://people.apache.org/~britter/
> http://www.systemoutprintln.de/
> http://twitter.com/BenediktRitter
> http://github.com/britter

Reply via email to