Bug 977050 - Automate changing end date/time in Calendar

This patch is just for ui review not code review currently.
since you use the same values on the `else if`, and these methods touches the DOM, I would store it on a variable.

```js
var endDateTime = this._getEndDateTime();
var startDateTime = this._getStartDateTime();

if (...) {
} else if (endDateTime <= startDateTime) {
 // ..
}

this._duration = endDateTime - startDateTime;
```