commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedikt Ritter (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (LANG-951) Fragments are wrong by 1 day when using fragment YEAR or MONTH
Date Tue, 04 Mar 2014 17:19:29 GMT

     [ https://issues.apache.org/jira/browse/LANG-951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Benedikt Ritter closed LANG-951.
--------------------------------


> Fragments are wrong by 1 day when using fragment YEAR or MONTH
> --------------------------------------------------------------
>
>                 Key: LANG-951
>                 URL: https://issues.apache.org/jira/browse/LANG-951
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.time.*
>    Affects Versions: 3.1
>            Reporter: Sebastian Götz
>            Assignee: Benedikt Ritter
>             Fix For: 3.3
>
>         Attachments: LANG-951.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> When one trys to get the fragments of a calendar object and uses the fragment YEAR or
MONTH, the returned value is wrong by 1 day in the targeted timeunit. The bug resides in the
class *DateUtils* in function 
> {code}
> private static long getFragment(Calendar calendar, int fragment, int unit)
> {code}
> There is an initial recalculation if the fragment is YEAR or MONTH. So if one would like
to have the minutes for the fragment YEAR for the date 2000-01-01 00:00:00 this would return
1440 which is actually wrong. The error can be found on lines 1635 - 1643.
> Suggested fix:
> {code}
> // 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;
>                 break;
>             case Calendar.MONTH:
>                 result += ((calendar.get(Calendar.DAY_OF_MONTH)-1) * MILLIS_PER_DAY)
/ millisPerUnit;
>                 break;
>         }
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message