Web edits
[beagleboard.org.git] / static / dojox / date / posix.js
blobf80146e34cc51f8fdb4378074de5cc6a3e64da0b
1 /*
2         Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved.
3         Available via Academic Free License >= 2.1 OR the modified BSD license.
4         see: http://dojotoolkit.org/license for details
5 */
8 if(!dojo._hasResource["dojox.date.posix"]){
9 dojo._hasResource["dojox.date.posix"]=true;
10 dojo.provide("dojox.date.posix");
11 dojo.require("dojo.date");
12 dojo.require("dojo.date.locale");
13 dojo.require("dojo.string");
14 dojox.date.posix.strftime=function(_1,_2,_3){
15 var _4=null;
16 var _=function(s,n){
17 return dojo.string.pad(s,n||2,_4||"0");
19 var _8=dojo.date.locale._getGregorianBundle(_3);
20 var $=function(_a){
21 switch(_a){
22 case "a":
23 return dojo.date.locale.getNames("days","abbr","format",_3)[_1.getDay()];
24 case "A":
25 return dojo.date.locale.getNames("days","wide","format",_3)[_1.getDay()];
26 case "b":
27 case "h":
28 return dojo.date.locale.getNames("months","abbr","format",_3)[_1.getMonth()];
29 case "B":
30 return dojo.date.locale.getNames("months","wide","format",_3)[_1.getMonth()];
31 case "c":
32 return dojo.date.locale.format(_1,{formatLength:"full",locale:_3});
33 case "C":
34 return _(Math.floor(_1.getFullYear()/100));
35 case "d":
36 return _(_1.getDate());
37 case "D":
38 return $("m")+"/"+$("d")+"/"+$("y");
39 case "e":
40 if(_4==null){
41 _4=" ";
43 return _(_1.getDate());
44 case "f":
45 if(_4==null){
46 _4=" ";
48 return _(_1.getMonth()+1);
49 case "g":
50 break;
51 case "G":
52 dojo.unimplemented("unimplemented modifier 'G'");
53 break;
54 case "F":
55 return $("Y")+"-"+$("m")+"-"+$("d");
56 case "H":
57 return _(_1.getHours());
58 case "I":
59 return _(_1.getHours()%12||12);
60 case "j":
61 return _(dojo.date.locale._getDayOfYear(_1),3);
62 case "k":
63 if(_4==null){
64 _4=" ";
66 return _(_1.getHours());
67 case "l":
68 if(_4==null){
69 _4=" ";
71 return _(_1.getHours()%12||12);
72 case "m":
73 return _(_1.getMonth()+1);
74 case "M":
75 return _(_1.getMinutes());
76 case "n":
77 return "\n";
78 case "p":
79 return _8[_1.getHours()<12?"am":"pm"];
80 case "r":
81 return $("I")+":"+$("M")+":"+$("S")+" "+$("p");
82 case "R":
83 return $("H")+":"+$("M");
84 case "S":
85 return _(_1.getSeconds());
86 case "t":
87 return "\t";
88 case "T":
89 return $("H")+":"+$("M")+":"+$("S");
90 case "u":
91 return String(_1.getDay()||7);
92 case "U":
93 return _(dojo.date.locale._getWeekOfYear(_1));
94 case "V":
95 return _(dojox.date.posix.getIsoWeekOfYear(_1));
96 case "W":
97 return _(dojo.date.locale._getWeekOfYear(_1,1));
98 case "w":
99 return String(_1.getDay());
100 case "x":
101 return dojo.date.locale.format(_1,{selector:"date",formatLength:"full",locale:_3});
102 case "X":
103 return dojo.date.locale.format(_1,{selector:"time",formatLength:"full",locale:_3});
104 case "y":
105 return _(_1.getFullYear()%100);
106 case "Y":
107 return String(_1.getFullYear());
108 case "z":
109 var _b=_1.getTimezoneOffset();
110 return (_b>0?"-":"+")+_(Math.floor(Math.abs(_b)/60))+":"+_(Math.abs(_b)%60);
111 case "Z":
112 return dojo.date.getTimezoneName(_1);
113 case "%":
114 return "%";
117 var _c="";
118 var i=0;
119 var _e=0;
120 var _f=null;
121 while((_e=_2.indexOf("%",i))!=-1){
122 _c+=_2.substring(i,_e++);
123 switch(_2.charAt(_e++)){
124 case "_":
125 _4=" ";
126 break;
127 case "-":
128 _4="";
129 break;
130 case "0":
131 _4="0";
132 break;
133 case "^":
134 _f="upper";
135 break;
136 case "*":
137 _f="lower";
138 break;
139 case "#":
140 _f="swap";
141 break;
142 default:
143 _4=null;
144 _e--;
145 break;
147 var _10=$(_2.charAt(_e++));
148 switch(_f){
149 case "upper":
150 _10=_10.toUpperCase();
151 break;
152 case "lower":
153 _10=_10.toLowerCase();
154 break;
155 case "swap":
156 var _11=_10.toLowerCase();
157 var _12="";
158 var ch="";
159 for(var j=0;j<_10.length;j++){
160 ch=_10.charAt(j);
161 _12+=(ch==_11.charAt(j))?ch.toUpperCase():ch.toLowerCase();
163 _10=_12;
164 break;
165 default:
166 break;
168 _f=null;
169 _c+=_10;
170 i=_e;
172 _c+=_2.substring(i);
173 return _c;
175 dojox.date.posix.getStartOfWeek=function(_15,_16){
176 if(isNaN(_16)){
177 _16=dojo.cldr.supplemental.getFirstDayOfWeek?dojo.cldr.supplemental.getFirstDayOfWeek():0;
179 var _17=_16;
180 if(_15.getDay()>=_16){
181 _17-=_15.getDay();
182 }else{
183 _17-=(7-_15.getDay());
185 var _18=new Date(_15);
186 _18.setHours(0,0,0,0);
187 return dojo.date.add(_18,"day",_17);
189 dojox.date.posix.setIsoWeekOfYear=function(_19,_1a){
190 if(!_1a){
191 return _19;
193 var _1b=dojox.date.posix.getIsoWeekOfYear(_19);
194 var _1c=_1a-_1b;
195 if(_1a<0){
196 var _1d=dojox.date.posix.getIsoWeeksInYear(_19);
197 _1c=(_1d+_1a+1)-_1b;
199 return dojo.date.add(_19,"week",_1c);
201 dojox.date.posix.getIsoWeekOfYear=function(_1e){
202 var _1f=dojox.date.posix.getStartOfWeek(_1e,1);
203 var _20=new Date(_1e.getFullYear(),0,4);
204 _20=dojox.date.posix.getStartOfWeek(_20,1);
205 var _21=_1f.getTime()-_20.getTime();
206 if(_21<0){
207 return dojox.date.posix.getIsoWeeksInYear(_1f);
209 return Math.ceil(_21/604800000)+1;
211 dojox.date.posix.getIsoWeeksInYear=function(_22){
212 function p(y){
213 return y+Math.floor(y/4)-Math.floor(y/100)+Math.floor(y/400);
215 var y=_22.getFullYear();
216 return (p(y)%7==4||p(y-1)%7==3)?53:52;