[jboss-jira] [JBoss JIRA] Closed: (JBPM-775) Business Calendar doesn't add days, weeks, months correctly when daylight savings time begins or ends

Tom Baeyens (JIRA) jira-events at jboss.com
Wed Nov 15 09:33:42 EST 2006


     [ http://jira.jboss.com/jira/browse/JBPM-775?page=all ]

Tom Baeyens closed JBPM-775.
----------------------------

    Resolution: Rejected

it would be too difficult to resolve all this kind of minor miscalculations.  fixing this would imply that i also have to fix the fact that days, weeks , months and years are all translated into a fixed number of milliseconds.

> Business Calendar doesn't add days, weeks, months correctly when daylight savings time begins or ends
> -----------------------------------------------------------------------------------------------------
>
>                 Key: JBPM-775
>                 URL: http://jira.jboss.com/jira/browse/JBPM-775
>             Project: JBoss jBPM
>          Issue Type: Bug
>          Components: Core Engine
>    Affects Versions:  jBPM 3.1.2
>         Environment: All environments
>            Reporter: Randy Tielking
>         Assigned To: Tom Baeyens
>            Priority: Minor
>
> When the BusinessCalendar's add method is called with a duration of days, weeks, or months and the time duration will span the beginning or end of daylight savings time, an unexpected time is returned.  Typically if a timer should go off at 5:00 pm everyday, you still want it to go off at 5:00 pm before and after you "spring forward" or "fall back".
> For example:
> public class BusinessCalendarTest extends TestCase {
> 	
> 	/**
> 	 * Tests that the BusinessCalendar still gets the time right when daylight savings time change occurs
> 	 * @throws Exception
> 	 */
> 	public void testCanHandleStartingDaylightSavingsTimeWhenAddingDays ( ) throws Exception {
> 		
> 		BusinessCalendar businessCalendar = new BusinessCalendar();
> 		Duration oneDayDuration = new Duration("1 day");
> 		
> 		DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss z");
> 		df.setTimeZone(TimeZone.getTimeZone("US/Eastern"));
> 		Date startDate = df.parse("2006/04/02 01:55:00 EST"); // Sunday at 1:55 am EST
> 		Date newDate = businessCalendar.add(startDate, oneDayDuration);  // now Monday at 1:55 am EDT
> 		assertEquals("2006/04/03 01:55:00 EDT", df.format(newDate));
> 	}
> }
> This test fails the assert with:
> junit.framework.ComparisonFailure: expected:<2006/04/03 0[1]:55:00 EDT> but was:<2006/04/03 0[2]:55:00 EDT>
> If you want to run every 24 hours instead of the same time every day, you could use a duration of 24 hours.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list