diff options
Diffstat (limited to 'js/dojo-1.6/dojox/date/buddhist/Date.js')
| -rw-r--r-- | js/dojo-1.6/dojox/date/buddhist/Date.js | 321 |
1 files changed, 321 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/date/buddhist/Date.js b/js/dojo-1.6/dojox/date/buddhist/Date.js new file mode 100644 index 0000000..e2d2cc5 --- /dev/null +++ b/js/dojo-1.6/dojox/date/buddhist/Date.js @@ -0,0 +1,321 @@ +/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.date.buddhist.Date"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.date.buddhist.Date"] = true;
+dojo.provide("dojox.date.buddhist.Date");
+dojo.experimental("dojox.date.buddhist.Date");
+
+dojo.declare("dojox.date.buddhist.Date", null, {
+
+ _date: 0,
+ _month: 0,
+ _year: 0,
+ _hours: 0,
+ _minutes: 0,
+ _seconds: 0,
+ _milliseconds: 0,
+ _day: 0,
+
+ constructor: function(){
+ // summary: This is the constructor
+ // description:
+ // This fucntion initialize the date object values
+ //
+ // example:
+ // | var date1 = new dojox.date.buddhist.Date();
+ // |
+ // | var date2 = new dojox.date.buddhist.Date(date1);
+ // |
+ // | var date3 = new dojox.date.buddhist.Date(2552,2,12);
+ var len = arguments.length;
+ if(!len){// use the current date value, added "" to the similarity to date
+ this.fromGregorian(new Date());
+ }else if(len == 1){
+ var arg0 = arguments[0];
+ if(typeof arg0 == "number"){ // this is time "valueof"
+ arg0 = new Date(arg0);
+ }
+
+ if(arg0 instanceof Date){
+ this.fromGregorian(arg0);
+ }else if(arg0 == ""){
+ this._date = new Date("");
+ }else{
+ this._year = arg0._year;
+ this._month = arg0._month;
+ this._date = arg0._date;
+ this._hours = arg0._hours;
+ this._minutes = arg0._minutes;
+ this._seconds = arg0._seconds;
+ this._milliseconds = arg0._milliseconds;
+ }
+ }else if(len >=3){
+ this._year += arguments[0];
+ this._month += arguments[1];
+ this._date += arguments[2];
+
+ if(this._month >11){
+ console.warn("the month is incorrect , set 0");
+ this._month = 0;
+ }
+ this._hours += arguments[3] || 0;
+ this._minutes += arguments[4] || 0;
+ this._seconds += arguments[5] || 0;
+ this._milliseconds += arguments[6] || 0;
+ }
+ },
+
+ getDate: function(/*boolean?*/isNumber){
+ // summary: This function returns the date value (0 - 30)
+ //
+ // example:
+ // | var date1 = new dojox.date.buddhist.Date();
+ // |
+ // | console.log(date1.getDate());
+ return parseInt(this._date);
+ },
+
+ getMonth: function(){
+ // summary: This function return the month value ( 0 - 11 )
+ //
+ // example:
+ // | var date1 = new dojox.date.buddhist.Date();
+ // |
+ // | console.log(date1.getMonth()+1);
+ return parseInt(this._month);
+ },
+
+
+ getFullYear: function(){
+ // summary: This function return the Year value
+ //
+ // example:
+ // | var date1 = new dojox.date.buddhist.Date();
+ // |
+ // | console.log(date1.getFullYear());
+ return parseInt(this._year);
+ },
+
+ getHours: function(){
+ //summary: returns the Hour value
+ return this._hours;
+ },
+
+ getMinutes: function(){
+ //summary: returns the Minuites value
+ return this._minutes;
+ },
+
+ getSeconds: function(){
+ //summary: returns the seconde value
+ return this._seconds;
+ },
+
+ getMilliseconds: function(){
+ //summary: returns the Milliseconds value
+ return this._milliseconds;
+ },
+
+ setDate: function(/*number*/date){
+ // summary: This function sets the Date
+ // example:
+ // | var date1 = new dojox.date.buddhist.Date();
+ // | date1.setDate(2);
+ date = parseInt(date);
+
+ if(date > 0 && date <= this._getDaysInMonth(this._month, this._year)){
+ this._date = date;
+ }else{
+ var mdays;
+ if(date>0){
+ for(mdays = this._getDaysInMonth(this._month, this._year);
+ date > mdays;
+ date -= mdays,mdays = this._getDaysInMonth(this._month, this._year)){
+ this._month++;
+ if(this._month >= 12){this._year++; this._month -= 12;}
+ }
+
+ this._date = date;
+ }else{
+ for(mdays = this._getDaysInMonth((this._month-1)>=0 ?(this._month-1) :11 ,((this._month-1)>=0)? this._year: this._year-1);
+ date <= 0;
+ mdays = this._getDaysInMonth((this._month-1)>=0 ? (this._month-1) :11,((this._month-1)>=0)? this._year: this._year-1)){
+ this._month--;
+ if(this._month < 0){this._year--; this._month += 12;}
+
+ date+=mdays;
+ }
+ this._date = date;
+ }
+ }
+ return this;
+ },
+
+ setFullYear: function(/*number*/year, /*number?*/month, /*number?*/ date){
+ // summary: This function set Year
+ //
+ // example:
+ // | var date1 = new dojox.date.buddhist.Date();
+ // | date1.setFullYear(2552);
+ // | date1.setFullYear(2552, 1, 1);
+ this._year = parseInt(year);
+ },
+
+ setMonth: function(/*number*/month){
+ // summary: This function set Month
+ //
+ // example:
+ // | var date1 = new dojox.date.buddhist.Date();
+ // | date1.setMonth(0); //first month
+ this._year += Math.floor(month / 12);
+ this._month = Math.floor(month % 12);
+ for(; this._month < 0; this._month = this._month+12);
+ },
+
+ setHours: function(){
+ //summary: set the Hours 0-23
+ var hours_arg_no = arguments.length;
+ var hours = 0;
+ if(hours_arg_no >= 1){
+ hours = parseInt(arguments[0]);
+ }
+
+ if(hours_arg_no >= 2){
+ this._minutes = parseInt(arguments[1]);
+ }
+
+ if(hours_arg_no >= 3){
+ this._seconds = parseInt(arguments[2]);
+ }
+
+ if(hours_arg_no == 4){
+ this._milliseconds = parseInt(arguments[3]);
+ }
+
+ while(hours >= 24){
+ this._date++;
+ var mdays = this._getDaysInMonth(this._month, this._year);
+ if(this._date > mdays){
+ this._month ++;
+ if(this._month >= 12){this._year++; this._month -= 12;}
+ this._date -= mdays;
+ }
+ hours -= 24;
+ }
+ this._hours = hours;
+ },
+
+ setMinutes: function(/*number*/minutes){
+ //summary: set the Minutes frm 0-59
+ while(minutes >= 60){
+ this._hours++;
+ if(this._hours >= 24){
+ this._date++;
+ this._hours -= 24;
+ var mdays = this._getDaysInMonth(this._month, this._year);
+ if(this._date > mdays){
+ this._month ++;
+ if(this._month >= 12){this._year++; this._month -= 12;}
+ this._date -= mdays;
+ }
+ }
+ minutes -= 60;
+ }
+ this._minutes = minutes;
+ },
+
+ setSeconds: function(/*number*/seconds){
+ //summary: set the Seconds from 0-59
+ while(seconds >= 60){
+ this._minutes++;
+ if(this._minutes >= 60){
+ this._hours++;
+ this._minutes -= 60;
+ if(this._hours >= 24){
+ this._date++;
+ this._hours -= 24;
+ var mdays = this._getDaysInMonth(this._month, this._year);
+ if(this._date > mdays){
+ this._month ++;
+ if(this._month >= 12){this._year++; this._month -= 12;}
+ this._date -= mdays;
+ }
+ }
+ }
+ seconds -= 60;
+ }
+ this._seconds = seconds;
+ },
+
+ setMilliseconds: function(/*number*/milliseconds){
+ //summary: set the milliseconds
+ while(milliseconds >= 1000){
+ this.setSeconds++;
+ if(this.setSeconds >= 60){
+ this._minutes++;
+ this.setSeconds -= 60;
+ if(this._minutes >= 60){
+ this._hours++;
+ this._minutes -= 60;
+ if(this._hours >= 24){
+ this._date++;
+ this._hours -= 24;
+ var mdays = this._getDaysInMonth(this._month, this._year);
+ if(this._date > mdays){
+ this._month ++;
+ if(this._month >= 12){this._year++; this._month -= 12;}
+ this._date -= mdays;
+ }
+ }
+ }
+ }
+ milliseconds -= 1000;
+ }
+ this._milliseconds = milliseconds;
+ },
+
+ toString: function(){
+ // summary: This returns a string representation of the date in "dd, MM, YYYY HH:MM:SS" format
+ return this._date + ", " + this._month + ", " + this._year + " " + this._hours + ":" + this._minutes + ":" + this._seconds; // String
+ },
+
+//FIXME: remove this and replace usage with dojox.date.buddhist.getDaysInMonth?
+ _getDaysInMonth: function(/*number*/month, /*number*/ year){
+ return dojo.date.getDaysInMonth(new Date(year-543, month));
+ },
+
+ fromGregorian: function(/*Date*/gdate){
+ // summary: This function sets this Date to the Hebrew Date corresponding to the Gregorian Date
+ var date = new Date(gdate);
+ this._date = date.getDate();
+ this._month = date.getMonth();
+ this._year = date.getFullYear()+543;
+ this._hours = date.getHours();
+ this._minutes = date.getMinutes();
+ this._seconds = date.getSeconds();
+ this._milliseconds = date.getMilliseconds();
+ this._day = date.getDay();
+ return this;
+ },
+
+ toGregorian: function(){
+ // summary: This returns the equivalent Gregorian date value as a Date object
+ return new Date(this._year-543, this._month, this._date, this._hours, this._minutes, this._seconds, this._milliseconds); // Date
+ },
+
+ getDay: function(){
+ // summary: This function return Week Day value ( 0 - 6 )
+ return this.toGregorian().getDay(); // int
+ }
+});
+
+dojox.date.buddhist.Date.prototype.valueOf = function(){
+ return this.toGregorian().valueOf();
+};
+
+}
|
