PageRenderTime 50ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/ajax/libs/dojo/1.3.1/date/locale.js

https://gitlab.com/alidz1982/cdnjs
JavaScript | 494 lines | 487 code | 2 blank | 5 comment | 49 complexity | 5a5e7f225de8a9d212bcf13cffdbe005 MD5 | raw file
  1. /*
  2. Copyright (c) 2004-2009, 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. */
  6. if(!dojo._hasResource["dojo.date.locale"]){
  7. dojo._hasResource["dojo.date.locale"]=true;
  8. dojo.provide("dojo.date.locale");
  9. dojo.require("dojo.date");
  10. dojo.require("dojo.cldr.supplemental");
  11. dojo.require("dojo.regexp");
  12. dojo.require("dojo.string");
  13. dojo.require("dojo.i18n");
  14. dojo.requireLocalization("dojo.cldr","gregorian",null,"ROOT,ar,ca,cs,da,de,el,en,en-au,en-ca,en-gb,es,es-es,fi,fr,he,hu,it,it-it,ja,ko,ko-kr,nb,nl,pl,pt,pt-br,pt-pt,ru,sk,sl,sv,th,tr,zh,zh-cn,zh-tw");
  15. (function(){
  16. function _1(_2,_3,_4,_5){
  17. return _5.replace(/([a-z])\1*/ig,function(_6){
  18. var s,_8;
  19. var c=_6.charAt(0);
  20. var l=_6.length;
  21. var _b=["abbr","wide","narrow"];
  22. switch(c){
  23. case "G":
  24. s=_3[(l<4)?"eraAbbr":"eraNames"][_2.getFullYear()<0?0:1];
  25. break;
  26. case "y":
  27. s=_2.getFullYear();
  28. switch(l){
  29. case 1:
  30. break;
  31. case 2:
  32. if(!_4){
  33. s=String(s);
  34. s=s.substr(s.length-2);
  35. break;
  36. }
  37. default:
  38. _8=true;
  39. }
  40. break;
  41. case "Q":
  42. case "q":
  43. s=Math.ceil((_2.getMonth()+1)/3);
  44. _8=true;
  45. break;
  46. case "M":
  47. var m=_2.getMonth();
  48. if(l<3){
  49. s=m+1;
  50. _8=true;
  51. }else{
  52. var _d=["months","format",_b[l-3]].join("-");
  53. s=_3[_d][m];
  54. }
  55. break;
  56. case "w":
  57. var _e=0;
  58. s=dojo.date.locale._getWeekOfYear(_2,_e);
  59. _8=true;
  60. break;
  61. case "d":
  62. s=_2.getDate();
  63. _8=true;
  64. break;
  65. case "D":
  66. s=dojo.date.locale._getDayOfYear(_2);
  67. _8=true;
  68. break;
  69. case "E":
  70. var d=_2.getDay();
  71. if(l<3){
  72. s=d+1;
  73. _8=true;
  74. }else{
  75. var _10=["days","format",_b[l-3]].join("-");
  76. s=_3[_10][d];
  77. }
  78. break;
  79. case "a":
  80. var _11=(_2.getHours()<12)?"am":"pm";
  81. s=_3[_11];
  82. break;
  83. case "h":
  84. case "H":
  85. case "K":
  86. case "k":
  87. var h=_2.getHours();
  88. switch(c){
  89. case "h":
  90. s=(h%12)||12;
  91. break;
  92. case "H":
  93. s=h;
  94. break;
  95. case "K":
  96. s=(h%12);
  97. break;
  98. case "k":
  99. s=h||24;
  100. break;
  101. }
  102. _8=true;
  103. break;
  104. case "m":
  105. s=_2.getMinutes();
  106. _8=true;
  107. break;
  108. case "s":
  109. s=_2.getSeconds();
  110. _8=true;
  111. break;
  112. case "S":
  113. s=Math.round(_2.getMilliseconds()*Math.pow(10,l-3));
  114. _8=true;
  115. break;
  116. case "v":
  117. case "z":
  118. s=dojo.date.getTimezoneName(_2);
  119. if(s){
  120. break;
  121. }
  122. l=4;
  123. case "Z":
  124. var _13=_2.getTimezoneOffset();
  125. var tz=[(_13<=0?"+":"-"),dojo.string.pad(Math.floor(Math.abs(_13)/60),2),dojo.string.pad(Math.abs(_13)%60,2)];
  126. if(l==4){
  127. tz.splice(0,0,"GMT");
  128. tz.splice(3,0,":");
  129. }
  130. s=tz.join("");
  131. break;
  132. default:
  133. throw new Error("dojo.date.locale.format: invalid pattern char: "+_5);
  134. }
  135. if(_8){
  136. s=dojo.string.pad(s,l);
  137. }
  138. return s;
  139. });
  140. };
  141. dojo.date.locale.format=function(_15,_16){
  142. _16=_16||{};
  143. var _17=dojo.i18n.normalizeLocale(_16.locale);
  144. var _18=_16.formatLength||"short";
  145. var _19=dojo.date.locale._getGregorianBundle(_17);
  146. var str=[];
  147. var _1b=dojo.hitch(this,_1,_15,_19,_16.fullYear);
  148. if(_16.selector=="year"){
  149. var _1c=_15.getFullYear();
  150. if(_17.match(/^zh|^ja/)){
  151. _1c+="年";
  152. }
  153. return _1c;
  154. }
  155. if(_16.selector!="time"){
  156. var _1d=_16.datePattern||_19["dateFormat-"+_18];
  157. if(_1d){
  158. str.push(_1e(_1d,_1b));
  159. }
  160. }
  161. if(_16.selector!="date"){
  162. var _1f=_16.timePattern||_19["timeFormat-"+_18];
  163. if(_1f){
  164. str.push(_1e(_1f,_1b));
  165. }
  166. }
  167. var _20=str.join(" ");
  168. return _20;
  169. };
  170. dojo.date.locale.regexp=function(_21){
  171. return dojo.date.locale._parseInfo(_21).regexp;
  172. };
  173. dojo.date.locale._parseInfo=function(_22){
  174. _22=_22||{};
  175. var _23=dojo.i18n.normalizeLocale(_22.locale);
  176. var _24=dojo.date.locale._getGregorianBundle(_23);
  177. var _25=_22.formatLength||"short";
  178. var _26=_22.datePattern||_24["dateFormat-"+_25];
  179. var _27=_22.timePattern||_24["timeFormat-"+_25];
  180. var _28;
  181. if(_22.selector=="date"){
  182. _28=_26;
  183. }else{
  184. if(_22.selector=="time"){
  185. _28=_27;
  186. }else{
  187. _28=_26+" "+_27;
  188. }
  189. }
  190. var _29=[];
  191. var re=_1e(_28,dojo.hitch(this,_2b,_29,_24,_22));
  192. return {regexp:re,tokens:_29,bundle:_24};
  193. };
  194. dojo.date.locale.parse=function(_2c,_2d){
  195. var _2e=dojo.date.locale._parseInfo(_2d);
  196. var _2f=_2e.tokens,_30=_2e.bundle;
  197. var re=new RegExp("^"+_2e.regexp+"$",_2e.strict?"":"i");
  198. var _32=re.exec(_2c);
  199. if(!_32){
  200. return null;
  201. }
  202. var _33=["abbr","wide","narrow"];
  203. var _34=[1970,0,1,0,0,0,0];
  204. var _35="";
  205. var _36=dojo.every(_32,function(v,i){
  206. if(!i){
  207. return true;
  208. }
  209. var _39=_2f[i-1];
  210. var l=_39.length;
  211. switch(_39.charAt(0)){
  212. case "y":
  213. if(l!=2&&_2d.strict){
  214. _34[0]=v;
  215. }else{
  216. if(v<100){
  217. v=Number(v);
  218. var _3b=""+new Date().getFullYear();
  219. var _3c=_3b.substring(0,2)*100;
  220. var _3d=Math.min(Number(_3b.substring(2,4))+20,99);
  221. var num=(v<_3d)?_3c+v:_3c-100+v;
  222. _34[0]=num;
  223. }else{
  224. if(_2d.strict){
  225. return false;
  226. }
  227. _34[0]=v;
  228. }
  229. }
  230. break;
  231. case "M":
  232. if(l>2){
  233. var _3f=_30["months-format-"+_33[l-3]].concat();
  234. if(!_2d.strict){
  235. v=v.replace(".","").toLowerCase();
  236. _3f=dojo.map(_3f,function(s){
  237. return s.replace(".","").toLowerCase();
  238. });
  239. }
  240. v=dojo.indexOf(_3f,v);
  241. if(v==-1){
  242. return false;
  243. }
  244. }else{
  245. v--;
  246. }
  247. _34[1]=v;
  248. break;
  249. case "E":
  250. case "e":
  251. var _41=_30["days-format-"+_33[l-3]].concat();
  252. if(!_2d.strict){
  253. v=v.toLowerCase();
  254. _41=dojo.map(_41,function(d){
  255. return d.toLowerCase();
  256. });
  257. }
  258. v=dojo.indexOf(_41,v);
  259. if(v==-1){
  260. return false;
  261. }
  262. break;
  263. case "D":
  264. _34[1]=0;
  265. case "d":
  266. _34[2]=v;
  267. break;
  268. case "a":
  269. var am=_2d.am||_30.am;
  270. var pm=_2d.pm||_30.pm;
  271. if(!_2d.strict){
  272. var _45=/\./g;
  273. v=v.replace(_45,"").toLowerCase();
  274. am=am.replace(_45,"").toLowerCase();
  275. pm=pm.replace(_45,"").toLowerCase();
  276. }
  277. if(_2d.strict&&v!=am&&v!=pm){
  278. return false;
  279. }
  280. _35=(v==pm)?"p":(v==am)?"a":"";
  281. break;
  282. case "K":
  283. if(v==24){
  284. v=0;
  285. }
  286. case "h":
  287. case "H":
  288. case "k":
  289. if(v>23){
  290. return false;
  291. }
  292. _34[3]=v;
  293. break;
  294. case "m":
  295. _34[4]=v;
  296. break;
  297. case "s":
  298. _34[5]=v;
  299. break;
  300. case "S":
  301. _34[6]=v;
  302. }
  303. return true;
  304. });
  305. var _46=+_34[3];
  306. if(_35==="p"&&_46<12){
  307. _34[3]=_46+12;
  308. }else{
  309. if(_35==="a"&&_46==12){
  310. _34[3]=0;
  311. }
  312. }
  313. var _47=new Date(_34[0],_34[1],_34[2],_34[3],_34[4],_34[5],_34[6]);
  314. if(_2d.strict){
  315. _47.setFullYear(_34[0]);
  316. }
  317. var _48=_2f.join("");
  318. if(!_36||(_48.indexOf("M")!=-1&&_47.getMonth()!=_34[1])||(_48.indexOf("d")!=-1&&_47.getDate()!=_34[2])){
  319. return null;
  320. }
  321. return _47;
  322. };
  323. function _1e(_49,_4a,_4b,_4c){
  324. var _4d=function(x){
  325. return x;
  326. };
  327. _4a=_4a||_4d;
  328. _4b=_4b||_4d;
  329. _4c=_4c||_4d;
  330. var _4f=_49.match(/(''|[^'])+/g);
  331. var _50=_49.charAt(0)=="'";
  332. dojo.forEach(_4f,function(_51,i){
  333. if(!_51){
  334. _4f[i]="";
  335. }else{
  336. _4f[i]=(_50?_4b:_4a)(_51);
  337. _50=!_50;
  338. }
  339. });
  340. return _4c(_4f.join(""));
  341. };
  342. function _2b(_53,_54,_55,_56){
  343. _56=dojo.regexp.escapeString(_56);
  344. if(!_55.strict){
  345. _56=_56.replace(" a"," ?a");
  346. }
  347. return _56.replace(/([a-z])\1*/ig,function(_57){
  348. var s;
  349. var c=_57.charAt(0);
  350. var l=_57.length;
  351. var p2="",p3="";
  352. if(_55.strict){
  353. if(l>1){
  354. p2="0"+"{"+(l-1)+"}";
  355. }
  356. if(l>2){
  357. p3="0"+"{"+(l-2)+"}";
  358. }
  359. }else{
  360. p2="0?";
  361. p3="0{0,2}";
  362. }
  363. switch(c){
  364. case "y":
  365. s="\\d{2,4}";
  366. break;
  367. case "M":
  368. s=(l>2)?"\\S+?":p2+"[1-9]|1[0-2]";
  369. break;
  370. case "D":
  371. s=p2+"[1-9]|"+p3+"[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6]";
  372. break;
  373. case "d":
  374. s="[12]\\d|"+p2+"[1-9]|3[01]";
  375. break;
  376. case "w":
  377. s=p2+"[1-9]|[1-4][0-9]|5[0-3]";
  378. break;
  379. case "E":
  380. s="\\S+";
  381. break;
  382. case "h":
  383. s=p2+"[1-9]|1[0-2]";
  384. break;
  385. case "k":
  386. s=p2+"\\d|1[01]";
  387. break;
  388. case "H":
  389. s=p2+"\\d|1\\d|2[0-3]";
  390. break;
  391. case "K":
  392. s=p2+"[1-9]|1\\d|2[0-4]";
  393. break;
  394. case "m":
  395. case "s":
  396. s="[0-5]\\d";
  397. break;
  398. case "S":
  399. s="\\d{"+l+"}";
  400. break;
  401. case "a":
  402. var am=_55.am||_54.am||"AM";
  403. var pm=_55.pm||_54.pm||"PM";
  404. if(_55.strict){
  405. s=am+"|"+pm;
  406. }else{
  407. s=am+"|"+pm;
  408. if(am!=am.toLowerCase()){
  409. s+="|"+am.toLowerCase();
  410. }
  411. if(pm!=pm.toLowerCase()){
  412. s+="|"+pm.toLowerCase();
  413. }
  414. if(s.indexOf(".")!=-1){
  415. s+="|"+s.replace(/\./g,"");
  416. }
  417. }
  418. s=s.replace(/\./g,"\\.");
  419. break;
  420. default:
  421. s=".*";
  422. }
  423. if(_53){
  424. _53.push(_57);
  425. }
  426. return "("+s+")";
  427. }).replace(/[\xa0 ]/g,"[\\s\\xa0]");
  428. };
  429. })();
  430. (function(){
  431. var _5f=[];
  432. dojo.date.locale.addCustomFormats=function(_60,_61){
  433. _5f.push({pkg:_60,name:_61});
  434. };
  435. dojo.date.locale._getGregorianBundle=function(_62){
  436. var _63={};
  437. dojo.forEach(_5f,function(_64){
  438. var _65=dojo.i18n.getLocalization(_64.pkg,_64.name,_62);
  439. _63=dojo.mixin(_63,_65);
  440. },this);
  441. return _63;
  442. };
  443. })();
  444. dojo.date.locale.addCustomFormats("dojo.cldr","gregorian");
  445. dojo.date.locale.getNames=function(_66,_67,_68,_69){
  446. var _6a;
  447. var _6b=dojo.date.locale._getGregorianBundle(_69);
  448. var _6c=[_66,_68,_67];
  449. if(_68=="standAlone"){
  450. var key=_6c.join("-");
  451. _6a=_6b[key];
  452. if(_6a[0]==1){
  453. _6a=undefined;
  454. }
  455. }
  456. _6c[1]="format";
  457. return (_6a||_6b[_6c.join("-")]).concat();
  458. };
  459. dojo.date.locale.displayPattern=function(_6e,_6f){
  460. var _70="GyMdkHmsSEDFwWahKzYeugAZvcL",_71=dojo.date.locale._getGregorianBundle(_6f).patternChars;
  461. return dojo.map(_6e,function(c){
  462. var i=_70.indexOf(c);
  463. return i<0?c:_71.charAt(i);
  464. }).join("");
  465. };
  466. dojo.date.locale.isWeekend=function(_74,_75){
  467. var _76=dojo.cldr.supplemental.getWeekend(_75);
  468. var day=(_74||new Date()).getDay();
  469. if(_76.end<_76.start){
  470. _76.end+=7;
  471. if(day<_76.start){
  472. day+=7;
  473. }
  474. }
  475. return day>=_76.start&&day<=_76.end;
  476. };
  477. dojo.date.locale._getDayOfYear=function(_78){
  478. return dojo.date.difference(new Date(_78.getFullYear(),0,1,_78.getHours()),_78)+1;
  479. };
  480. dojo.date.locale._getWeekOfYear=function(_79,_7a){
  481. if(arguments.length==1){
  482. _7a=0;
  483. }
  484. var _7b=new Date(_79.getFullYear(),0,1).getDay();
  485. var adj=(_7b-_7a+7)%7;
  486. var _7d=Math.floor((dojo.date.locale._getDayOfYear(_79)+adj-1)/7);
  487. if(_7b==_7a){
  488. _7d++;
  489. }
  490. return _7d;
  491. };
  492. }