/* Copyright (c) 2006 Jörn Zaefferer and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net) * Dual licensed under the MIT and GPL licenses */ Date.dayNames=['MOD_DAYS']; Date.abbrDayNames=['0']; Date.monthNames=[]; Date.abbrMonthNames=['0']; Date.firstDayOfWeek=1; Date.format='dd/mm/yyyy'; Date.fullYearStart='20'; (function(){function add(name,method){if(!Date.prototype[name]){Date.prototype[name]=method}}; add("isLeapYear",function(){var y=this.getFullYear(); return(y%4==0&&y%100!=0)||y%400==0}); add("isWeekend",function(){return this.getDay()==0||this.getDay()==6}); add("isWeekDay",function(){return!this.isWeekend()}); add("getDaysInMonth",function(){return[31,(this.isLeapYear()?29:28),31,30,31,30,31,31,30,31,30,31][this.getMonth()]}); add("getDayName",function(abbreviated){return abbreviated?Date.abbrDayNames[this.getDay()]:Date.dayNames[this.getDay()]}); add("getMonthName",function(abbreviated){return abbreviated?Date.abbrMonthNames[this.getMonth()]:Date.monthNames[this.getMonth()]}); add("getDayOfYear",function(){var tmpdtm=new Date("1/1/"+this.getFullYear()); return Math.floor((this.getTime()-tmpdtm.getTime())/86400000)}); add("getWeekOfYear",function(){return Math.ceil(this.getDayOfYear()/7)}); add("setDayOfYear",function(day){this.setMonth(0); this.setDate(day); return this}); add("addYears",function(num){this.setFullYear(this.getFullYear()+num); return this}); add("addMonths",function(num){var tmpdtm=this.getDate(); this.setMonth(this.getMonth()+num); if(tmpdtm>this.getDate())this.addDays(-this.getDate()); return this}); add("addDays",function(num){this.setDate(this.getDate()+num); return this}); add("addHours",function(num){this.setHours(this.getHours()+num); return this}); add("addMinutes",function(num){this.setMinutes(this.getMinutes()+num); return this}); add("addSeconds",function(num){this.setSeconds(this.getSeconds()+num); return this}); add("zeroTime",function(){this.setMilliseconds(0); this.setSeconds(0); this.setMinutes(0); this.setHours(0); return this}); add("asString",function(){var r=Date.format; return r.split('yyyy').join(this.getFullYear()).split('yy').join((this.getFullYear()+'').substring(2)).split('mmm').join(this.getMonthName(true)).split('mm').join(_zeroPad(this.getMonth()+1)).split('dd').join(_zeroPad(this.getDate()))}); Date.fromString=function(s){var f=Date.format; var d=new Date('01/01/1977'); var iY=f.indexOf('yyyy'); if(iY>-1){d.setFullYear(Number(s.substr(iY,4)))}else{d.setFullYear(Number(Date.fullYearStart+s.substr(f.indexOf('yy'),2)))}var iM=f.indexOf('mmm'); if(iM>-1){var mStr=s.substr(iM,3); for(var i=0; i