网页特效 datetime时间操作函数
html
DateTime and TimeSpan
js
/*similar to .NET's DateTime class--slchen
*/
function DateTime() {
this.year = 0;
this.month = 0;
this.day = 0;
this.hour = 0;
this.minute = 0;
this.second = 0;
this.millisecond = 0;switch (arguments.length) {
case 0:
var d = new Date();
this.year = d.getFullYear();
this.month = d.getMonth() + 1;
this.day = d.getDate();
this.hour = d.getHours();
this.minute = d.getMinutes();
this.second = d.getSeconds();
this.millisecond = d.getMilliseconds();
break;
case 1:
this.millisecond = arguments[0];
break;
case 3:
this.year = arguments[0];
this.month = arguments[1];
this.day = arguments[2];
break;
case 6:
this.year = arguments[0];
this.month = arguments[1];
this.day = arguments[2];
this.hour = arguments[3];
this.minute = arguments[4];
this.second = arguments[5];
break;
case 7:
this.year = arguments[0];
this.month = arguments[1];
this.day = arguments[2];
this.hour = arguments[3];
this.minute = arguments[4];
this.second = arguments[5];
this.millisecond = arguments[6];
break;
default:
throw ("No constructor");
}this.strings = function () { };
this.strings.TimeSeparator = ":";
this.strings.DateSeparator = "-";
this.strings.SpaceSeparator = " ";this.toString = function () {
return this.getDate() + this.strings.SpaceSeparator + this.getTime();
}
this.getDate = function () {
return this.year + this.strings.DateSeparator + this.Pad(this.month) + this.strings.DateSeparator + this.Pad(this.day);
}
this.getTime = function () {
return this.strings.SpaceSeparator + this.Pad(this.hour) + this.strings.TimeSeparator + this.Pad(this.minute) + this.strings.TimeSeparator + this.Pad(this.second);
}this.getYear = function () {
return this.year;
}this.getMonth = function () {
return this.month;
}this.getDay = function () {
return this.day;
}this.getHour = function () {
return this.hour;
}this.getMinute = function () {
return this.minute;
}this.getSecond = function () {
return this.second;
}this.span = new Date(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond);
this.getTick = function () {
return new Date(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond).getTime();
}this.CompareTo = function (datetime1) {
if (this.getTick() > datetime1.getTick()) return 1;
if (this.getTick() == datetime1.getTick()) return 0;
if (this.getTick() < datetime1.getTick()) return -1;
}this.addYears = function (years) {
this.span.setYear(this.year + years);
var year = this.span.getFullYear();
var month = this.span.getMonth() + 1;
var day = this.span.getDate();
var hour = this.span.getHours();
var minute = this.span.getMinutes();
var second = this.span.getSeconds();
var millisecond = this.span.getMilliseconds();
return new DateTime(year, month, day, hour, minute, second, millisecond);
}this.addMonths = function (months) {
this.span.setMonth(this.month - 1 + months);
var year = this.span.getFullYear();
var month = this.span.getMonth() + 1;
var day = this.span.getDate();
var hour = this.span.getHours();
var minute = this.span.getMinutes();
var second = this.span.getSeconds();
var millisecond = this.span.getMilliseconds();
return new DateTime(year, month, day, hour, minute, second, millisecond);
}
this.addDays = function (days) {
this.span.setDate(this.day + days);
var year = this.span.getFullYear();
var month = this.span.getMonth() + 1;
var day = this.span.getDate();
var hour = this.span.getHours();
var minute = this.span.getMinutes();
var second = this.span.getSeconds();
var millisecond = this.span.getMilliseconds();
return new DateTime(year, month, day, hour, minute, second, millisecond);}
this.addHours = function (hours) {
this.span.setHours(this.hour + hours);
var year = this.span.getFullYear();
var month = this.span.getMonth() + 1;
var day = this.span.getDate();
var hour = this.span.getHours();
var minute = this.span.getMinutes();
var second = this.span.getSeconds();
var millisecond = this.span.getMilliseconds();
return new DateTime(year, month, day, hour, minute, second, millisecond);
}this.addMinutes = function (minutes) {
this.span.setMinutes(this.minute + minutes);
var year = this.span.getFullYear();
var month = this.span.getMonth() + 1;
var day = this.span.getDate();
var hour = this.span.getHours();
var minute = this.span.getMinutes();
var second = this.span.getSeconds();
var millisecond = this.span.getMilliseconds();
return new DateTime(year, month, day, hour, minute, second, millisecond);
}
this.addSeconds = function (seconds) {
this.span.setSeconds(this.second + seconds);
var year = this.span.getFullYear();
var month = this.span.getMonth() + 1;
var day = this.span.getDate();
var hour = this.span.getHours();
var minute = this.span.getMinutes();
var second = this.span.getSeconds();
var millisecond = this.span.getMilliseconds();
return new DateTime(year, month, day, hour, minute, second, millisecond);
}}
/*prototype extends methods*/
DateTime.prototype.IsLeapYear = function (year) {
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
return true;
return false;
}
DateTime.prototype.DaysInMonth = function (year, month) {
var monthDays = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var monthDaysLeapYear = new Array(0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if (DateTime.IsLeapYear(year)) {
return monthDaysLeapYear[month];
}
else {
return monthDays[month];
}
}DateTime.prototype.Pad = function (number) {
return (number < 10 ? '0' : '') + number;
}/* .NET's TimeSpan class*/
function TimeSpan() {this.milliseconds = 0;
switch (arguments.length) {
case 1:
this.milliseconds = arguments[0];
break;
default:
throw ("No constructor");
}this.totalDays = function () {
return this.milliseconds / (24 * 3600 * 1000);
}this.totalHours = function () {
return this.milliseconds / (3600 * 1000);
}this.totalMinutes = function () {
return this.milliseconds / (60 * 1000);
}this.totalSeconds = function () {
return this.milliseconds / 1000;
}this.totalMilliseconds = function () {
return this.milliseconds;
}
}
如何使用?