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.


>
>
> 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