Date : {
isToday : function(d) {
return d > this.yesterday() && d < this.tomorrow();
},
isTomorrow :function(d) {
var tomorrow = this.tomorrow();
return d.getFullYear() === tomorrow.getFullYear()
&& d.getMonth() === tomorrow.getMonth()
&& d.getDate() === tomorrow.getDate();
},
isYesterday : function(d) {
var yesterday = this.yesterday();
return d.getFullYear() === yesterday.getFullYear()
&& d.getMonth() === yesterday.getMonth()
&& d.getDate() === yesterday.getDate();
},
isNextDay : function(d, future) {
return this.nDaysFromDate(1, this.toStartOfTheDay(d)).getTime()
== this.toStartOfTheDay(future).getTime();
},
isPreviousDay : function(d, past) {
return this.nDaysFromDate(-1, this.toStartOfTheDay(d)).getTime()
== this.toStartOfTheDay(past).getTime();
},
elapsedDays : function(d1, d2) {
return Math.abs(Math.round((
this.toStartOfTheDay(d1).getTime()
-
this.toStartOfTheDay(d2).getTime())
/ (24 * 60 * 60 * 1000)));
},
toStartOfTheDay : function(d) {
return new Date(d.getFullYear(), d.getMonth(), d.getDate());
},
today : function() {
return this.toStartOfTheDay(new Date());
},
tomorrow : function() {
return this.nDaysFromDate(1);
},
yesterday : function() {
return this.nDaysFromDate(-1);
},
nDaysFromDate : function(n, d) {
if (!d) d = this.today();
else d = this.clone(d);
d.setDate(d.getDate() + n);
return d;
},
isWithinDays : function(d, nDays, startFrom) {
if (!startFrom) startFrom = this.today();
else startFrom = this.toStartOfTheDay(startFrom);
return this.toStartOfTheDay(d) >= this.toStartOfTheDay(startFrom)
&& this.elapsedDays(startFrom, d) <= nDays;
},
clone : function(d) {
return new Date(d.getTime());
},
isEqual : function(d1, d2) {
return d1.getTime() === d2.getTime();
},
isSameDay : function(d1, d2) {
return this.isEqual(this.toStartOfTheDay(d1), this.toStartOfTheDay(d2));
},
isSameMonth : function(d1, d2) {
return d1.getFullYear() === d2.getFullYear()
&& d1.getMonth() === d2.getMonth();
},
isSameWeek : function(d1, d2, weekStartsAtSunday) {
if (d2 < d1) { var tmp = d1; d1 = d2; d2 = tmp; }
if (weekStartsAtSunday !== false) weekStartsAtSunday = true;
return this.isSameMonth(d1, d2)
&& Math.abs(d1.getDate() - d2.getDate()) < 7
&& (
(!weekStartsAtSunday && d1.getDay() === 0 ? 7 : d1.getDay())
<=
(!weekStartsAtSunday && d2.getDay() === 0 ? 7 : d2.getDay())
)
;
}
}
};
return valib;
}));