bug 353707 - Consolidate usage of convertDate to common location. Patch by Joey Minta <jminta@gmail.com> r1=lilmatt, r2=dmose

This commit is contained in:
mattwillis%gmail.com 2007-03-05 15:23:26 +00:00
parent 72d688b04d
commit 5840ed4834
3 changed files with 27 additions and 42 deletions

View File

@ -249,27 +249,11 @@ calEvent.prototype = {
return this.recurrenceInfo.getOccurrences(aStartDate, aEndDate, 0, aCount);
}
// We need to convert dates to regular datetime-objects
// here in order to correctly handle allday-events that
// don't match day borders.
function convertDate(date) {
if (date.isDate) {
var newDate = date.clone();
newDate.hour = 0;
newDate.minute = 0;
newDate.second = 0;
newDate.isDate = false;
return newDate;
} else {
return date;
}
}
var start = convertDate(this.startDate);
var end = convertDate(this.endDate);
var start = ensureDateTime(this.startDate);
var end = ensureDateTime(this.endDate);
var queryStart = convertDate(aStartDate);
var queryEnd = convertDate(aEndDate);
var queryStart = ensureDateTime(aStartDate);
var queryEnd = ensureDateTime(aEndDate);
var isZeroLength = !start.compare(end);
if ((isZeroLength &&

View File

@ -254,29 +254,11 @@ calTodo.prototype = {
if (!this.entryDate && !this.dueDate)
return null;
// We need to convert dates to regular datetime-objects
// here in order to correctly handle allday-todos that
// don't match day borders.
function convertDate(date) {
if (!date)
return null;
if (date.isDate) {
var newDate = date.clone();
newDate.hour = 0;
newDate.minute = 0;
newDate.second = 0;
newDate.isDate = false;
return newDate;
} else {
return date;
}
}
var entry = ensureDateTime(this.entryDate);
var due = ensureDateTime(this.dueDate);
var entry = convertDate(this.entryDate);
var due = convertDate(this.dueDate);
var queryStart = convertDate(aStartDate);
var queryEnd = convertDate(aEndDate);
var queryStart = ensureDateTime(aStartDate);
var queryEnd = ensureDateTime(aEndDate);
var isInterval = entry && due;
var isZeroLength = isInterval ? !entry.compare(due) : true;

View File

@ -550,6 +550,25 @@ function compareObjects(aObject, aOtherObject, aIID) {
return sip1.data == sip2.data;
}
/**
* Many computations want to work only with date-times, not with dates. This
* method will return a proper datetime (set to midnight) for a date object. If
* the object is already a datetime, it will simply be returned.
*
* @param aDate the date or datetime to check
*/
function ensureDateTime(aDate) {
if (!aDate.isDate) {
return aDate;
}
var newDate = aDate.clone();
newDate.hour = 0;
newDate.minute = 0;
newDate.second = 0;
newDate.isDate = false;
return newDate;
}
/****
**** debug code
****/