Closed Bug 311301 Opened 19 years ago Closed 14 years ago

End Date is set back one day if start time is set

Categories

(Calendar :: Internal Components, defect)

defect
Not set
minor

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: lutimdale, Unassigned)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4

The date arithmetic fails after an error message "Your start date is after your
end date" is displayed.  The end date gets set back one day and the end time is
changed to PM.

Reproducible: Always

Steps to Reproduce:
1. New Event
2. set start time to 2:00 am 
3. change start time to 14:00 (2:00pm) 
4. change end time to 3:00 am 
5. change start time to 2:00 am 

Actual Results:  
Results listed after each step.
1. New event popup
2. end time changes to 3am automatically
3. end time changes to 3pm automatically
4. error shows in red "Your start time is after your end time"
5. end date changes automatically to day before and end time changes to PM

Expected Results:  
Results listed after each step.
1. New event popup
2. end time changes to 3am automatically
3. end time changes to 3pm automatically
4. error shows in red "Your start time is after your end time" 
5. end date should stay the same, message should go away.  Start time should be
set to 2:00am, end time should remain as 3:00am on the same day.


I think this is a problem with date arithmetic.
Summary: End Date is set back one day if start time is set → End Date is set back one day if start time is set
Version: unspecified → Trunk
This is not a problem with date-arithmetic, but rather is simply a symptom of
the fact that Sunbird always tries to preserve the length of the event when you
change a particular time.  "end date is set back one day" is actually just "12
hours is subtracted form end time" since that's the change you made to the
start-date.  Perhaps we shouldn't be trying to preserve an illegal start-end
relationship, but at the same time, I don't think what we're doing is explicitly
wrong.

Leaving as unconfirmed.  mvl, thoughts on this? do we need beltzner's opinion
perhaps?
Assignee: shaver → nobody
OS: Windows XP → All
Hardware: PC → All
Whiteboard: [qa discussion needed]
We have discussed this in QA and decided to confirm it. I can confirm it with build: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a2pre) Gecko/20070104 Calendar/0.4a1

We also thought that you might want to change the behavior w.r.t. preserving the duration.  Basically, if calculating preserved duration after the user changes the start date results in an invalid end date, then reset the end date to be 1 hour after the start date.  That way in 99% of cases, sunbird will preserve the duration, and in those rare 1% of cases where users might hit this bug, the duration is replaced by a one hour duration and the user cannot enter an invalid time range in the event dialog.

We recommend this approach for both the event dialog and the prototype event dialog, but it seems the prototype event dialog may already be heading down this path.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Whiteboard: [qa discussion needed]
WFM using Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a9pre) Gecko/2007110104 Calendar/0.6a1
WFM per previous comment
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.