You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
464 lines
8.9 KiB
464 lines
8.9 KiB
13 years ago
|
/*
|
||
|
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["dojo.date.locale"]){
|
||
|
dojo._hasResource["dojo.date.locale"]=true;
|
||
|
dojo.provide("dojo.date.locale");
|
||
|
dojo.require("dojo.date");
|
||
|
dojo.require("dojo.cldr.supplemental");
|
||
|
dojo.require("dojo.regexp");
|
||
|
dojo.require("dojo.string");
|
||
|
dojo.require("dojo.i18n");
|
||
|
dojo.requireLocalization("dojo.cldr","gregorian",null,"ROOT,ar,ca,cs,da,de,el,en,en-au,en-ca,en-gb,es,fi,fr,fr-ch,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-hant,zh-hk,zh-tw");
|
||
|
dojo.getObject("date.locale",true,dojo);
|
||
|
(function(){
|
||
|
function _1(_2,_3,_4,_5){
|
||
|
return _5.replace(/([a-z])\1*/ig,function(_6){
|
||
|
var s,_7,c=_6.charAt(0),l=_6.length,_8=["abbr","wide","narrow"];
|
||
|
switch(c){
|
||
|
case "G":
|
||
|
s=_3[(l<4)?"eraAbbr":"eraNames"][_2.getFullYear()<0?0:1];
|
||
|
break;
|
||
|
case "y":
|
||
|
s=_2.getFullYear();
|
||
|
switch(l){
|
||
|
case 1:
|
||
|
break;
|
||
|
case 2:
|
||
|
if(!_4.fullYear){
|
||
|
s=String(s);
|
||
|
s=s.substr(s.length-2);
|
||
|
break;
|
||
|
}
|
||
|
default:
|
||
|
_7=true;
|
||
|
}
|
||
|
break;
|
||
|
case "Q":
|
||
|
case "q":
|
||
|
s=Math.ceil((_2.getMonth()+1)/3);
|
||
|
_7=true;
|
||
|
break;
|
||
|
case "M":
|
||
|
var m=_2.getMonth();
|
||
|
if(l<3){
|
||
|
s=m+1;
|
||
|
_7=true;
|
||
|
}else{
|
||
|
var _9=["months","format",_8[l-3]].join("-");
|
||
|
s=_3[_9][m];
|
||
|
}
|
||
|
break;
|
||
|
case "w":
|
||
|
var _a=0;
|
||
|
s=dojo.date.locale._getWeekOfYear(_2,_a);
|
||
|
_7=true;
|
||
|
break;
|
||
|
case "d":
|
||
|
s=_2.getDate();
|
||
|
_7=true;
|
||
|
break;
|
||
|
case "D":
|
||
|
s=dojo.date.locale._getDayOfYear(_2);
|
||
|
_7=true;
|
||
|
break;
|
||
|
case "E":
|
||
|
var d=_2.getDay();
|
||
|
if(l<3){
|
||
|
s=d+1;
|
||
|
_7=true;
|
||
|
}else{
|
||
|
var _b=["days","format",_8[l-3]].join("-");
|
||
|
s=_3[_b][d];
|
||
|
}
|
||
|
break;
|
||
|
case "a":
|
||
|
var _c=(_2.getHours()<12)?"am":"pm";
|
||
|
s=_4[_c]||_3["dayPeriods-format-wide-"+_c];
|
||
|
break;
|
||
|
case "h":
|
||
|
case "H":
|
||
|
case "K":
|
||
|
case "k":
|
||
|
var h=_2.getHours();
|
||
|
switch(c){
|
||
|
case "h":
|
||
|
s=(h%12)||12;
|
||
|
break;
|
||
|
case "H":
|
||
|
s=h;
|
||
|
break;
|
||
|
case "K":
|
||
|
s=(h%12);
|
||
|
break;
|
||
|
case "k":
|
||
|
s=h||24;
|
||
|
break;
|
||
|
}
|
||
|
_7=true;
|
||
|
break;
|
||
|
case "m":
|
||
|
s=_2.getMinutes();
|
||
|
_7=true;
|
||
|
break;
|
||
|
case "s":
|
||
|
s=_2.getSeconds();
|
||
|
_7=true;
|
||
|
break;
|
||
|
case "S":
|
||
|
s=Math.round(_2.getMilliseconds()*Math.pow(10,l-3));
|
||
|
_7=true;
|
||
|
break;
|
||
|
case "v":
|
||
|
case "z":
|
||
|
s=dojo.date.locale._getZone(_2,true,_4);
|
||
|
if(s){
|
||
|
break;
|
||
|
}
|
||
|
l=4;
|
||
|
case "Z":
|
||
|
var _d=dojo.date.locale._getZone(_2,false,_4);
|
||
|
var tz=[(_d<=0?"+":"-"),dojo.string.pad(Math.floor(Math.abs(_d)/60),2),dojo.string.pad(Math.abs(_d)%60,2)];
|
||
|
if(l==4){
|
||
|
tz.splice(0,0,"GMT");
|
||
|
tz.splice(3,0,":");
|
||
|
}
|
||
|
s=tz.join("");
|
||
|
break;
|
||
|
default:
|
||
|
throw new Error("dojo.date.locale.format: invalid pattern char: "+_5);
|
||
|
}
|
||
|
if(_7){
|
||
|
s=dojo.string.pad(s,l);
|
||
|
}
|
||
|
return s;
|
||
|
});
|
||
|
};
|
||
|
dojo.date.locale._getZone=function(_e,_f,_10){
|
||
|
if(_f){
|
||
|
return dojo.date.getTimezoneName(_e);
|
||
|
}else{
|
||
|
return _e.getTimezoneOffset();
|
||
|
}
|
||
|
};
|
||
|
dojo.date.locale.format=function(_11,_12){
|
||
|
_12=_12||{};
|
||
|
var _13=dojo.i18n.normalizeLocale(_12.locale),_14=_12.formatLength||"short",_15=dojo.date.locale._getGregorianBundle(_13),str=[],_16=dojo.hitch(this,_1,_11,_15,_12);
|
||
|
if(_12.selector=="year"){
|
||
|
return _17(_15["dateFormatItem-yyyy"]||"yyyy",_16);
|
||
|
}
|
||
|
var _18;
|
||
|
if(_12.selector!="date"){
|
||
|
_18=_12.timePattern||_15["timeFormat-"+_14];
|
||
|
if(_18){
|
||
|
str.push(_17(_18,_16));
|
||
|
}
|
||
|
}
|
||
|
if(_12.selector!="time"){
|
||
|
_18=_12.datePattern||_15["dateFormat-"+_14];
|
||
|
if(_18){
|
||
|
str.push(_17(_18,_16));
|
||
|
}
|
||
|
}
|
||
|
return str.length==1?str[0]:_15["dateTimeFormat-"+_14].replace(/\{(\d+)\}/g,function(_19,key){
|
||
|
return str[key];
|
||
|
});
|
||
|
};
|
||
|
dojo.date.locale.regexp=function(_1a){
|
||
|
return dojo.date.locale._parseInfo(_1a).regexp;
|
||
|
};
|
||
|
dojo.date.locale._parseInfo=function(_1b){
|
||
|
_1b=_1b||{};
|
||
|
var _1c=dojo.i18n.normalizeLocale(_1b.locale),_1d=dojo.date.locale._getGregorianBundle(_1c),_1e=_1b.formatLength||"short",_1f=_1b.datePattern||_1d["dateFormat-"+_1e],_20=_1b.timePattern||_1d["timeFormat-"+_1e],_21;
|
||
|
if(_1b.selector=="date"){
|
||
|
_21=_1f;
|
||
|
}else{
|
||
|
if(_1b.selector=="time"){
|
||
|
_21=_20;
|
||
|
}else{
|
||
|
_21=_1d["dateTimeFormat-"+_1e].replace(/\{(\d+)\}/g,function(_22,key){
|
||
|
return [_20,_1f][key];
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
var _23=[],re=_17(_21,dojo.hitch(this,_24,_23,_1d,_1b));
|
||
|
return {regexp:re,tokens:_23,bundle:_1d};
|
||
|
};
|
||
|
dojo.date.locale.parse=function(_25,_26){
|
||
|
var _27=/[\u200E\u200F\u202A\u202E]/g,_28=dojo.date.locale._parseInfo(_26),_29=_28.tokens,_2a=_28.bundle,re=new RegExp("^"+_28.regexp.replace(_27,"")+"$",_28.strict?"":"i"),_2b=re.exec(_25&&_25.replace(_27,""));
|
||
|
if(!_2b){
|
||
|
return null;
|
||
|
}
|
||
|
var _2c=["abbr","wide","narrow"],_2d=[1970,0,1,0,0,0,0],_2e="",_2f=dojo.every(_2b,function(v,i){
|
||
|
if(!i){
|
||
|
return true;
|
||
|
}
|
||
|
var _30=_29[i-1];
|
||
|
var l=_30.length;
|
||
|
switch(_30.charAt(0)){
|
||
|
case "y":
|
||
|
if(l!=2&&_26.strict){
|
||
|
_2d[0]=v;
|
||
|
}else{
|
||
|
if(v<100){
|
||
|
v=Number(v);
|
||
|
var _31=""+new Date().getFullYear(),_32=_31.substring(0,2)*100,_33=Math.min(Number(_31.substring(2,4))+20,99),num=(v<_33)?_32+v:_32-100+v;
|
||
|
_2d[0]=num;
|
||
|
}else{
|
||
|
if(_26.strict){
|
||
|
return false;
|
||
|
}
|
||
|
_2d[0]=v;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
case "M":
|
||
|
if(l>2){
|
||
|
var _34=_2a["months-format-"+_2c[l-3]].concat();
|
||
|
if(!_26.strict){
|
||
|
v=v.replace(".","").toLowerCase();
|
||
|
_34=dojo.map(_34,function(s){
|
||
|
return s.replace(".","").toLowerCase();
|
||
|
});
|
||
|
}
|
||
|
v=dojo.indexOf(_34,v);
|
||
|
if(v==-1){
|
||
|
return false;
|
||
|
}
|
||
|
}else{
|
||
|
v--;
|
||
|
}
|
||
|
_2d[1]=v;
|
||
|
break;
|
||
|
case "E":
|
||
|
case "e":
|
||
|
var _35=_2a["days-format-"+_2c[l-3]].concat();
|
||
|
if(!_26.strict){
|
||
|
v=v.toLowerCase();
|
||
|
_35=dojo.map(_35,function(d){
|
||
|
return d.toLowerCase();
|
||
|
});
|
||
|
}
|
||
|
v=dojo.indexOf(_35,v);
|
||
|
if(v==-1){
|
||
|
return false;
|
||
|
}
|
||
|
break;
|
||
|
case "D":
|
||
|
_2d[1]=0;
|
||
|
case "d":
|
||
|
_2d[2]=v;
|
||
|
break;
|
||
|
case "a":
|
||
|
var am=_26.am||_2a["dayPeriods-format-wide-am"],pm=_26.pm||_2a["dayPeriods-format-wide-pm"];
|
||
|
if(!_26.strict){
|
||
|
var _36=/\./g;
|
||
|
v=v.replace(_36,"").toLowerCase();
|
||
|
am=am.replace(_36,"").toLowerCase();
|
||
|
pm=pm.replace(_36,"").toLowerCase();
|
||
|
}
|
||
|
if(_26.strict&&v!=am&&v!=pm){
|
||
|
return false;
|
||
|
}
|
||
|
_2e=(v==pm)?"p":(v==am)?"a":"";
|
||
|
break;
|
||
|
case "K":
|
||
|
if(v==24){
|
||
|
v=0;
|
||
|
}
|
||
|
case "h":
|
||
|
case "H":
|
||
|
case "k":
|
||
|
if(v>23){
|
||
|
return false;
|
||
|
}
|
||
|
_2d[3]=v;
|
||
|
break;
|
||
|
case "m":
|
||
|
_2d[4]=v;
|
||
|
break;
|
||
|
case "s":
|
||
|
_2d[5]=v;
|
||
|
break;
|
||
|
case "S":
|
||
|
_2d[6]=v;
|
||
|
}
|
||
|
return true;
|
||
|
});
|
||
|
var _37=+_2d[3];
|
||
|
if(_2e==="p"&&_37<12){
|
||
|
_2d[3]=_37+12;
|
||
|
}else{
|
||
|
if(_2e==="a"&&_37==12){
|
||
|
_2d[3]=0;
|
||
|
}
|
||
|
}
|
||
|
var _38=new Date(_2d[0],_2d[1],_2d[2],_2d[3],_2d[4],_2d[5],_2d[6]);
|
||
|
if(_26.strict){
|
||
|
_38.setFullYear(_2d[0]);
|
||
|
}
|
||
|
var _39=_29.join(""),_3a=_39.indexOf("d")!=-1,_3b=_39.indexOf("M")!=-1;
|
||
|
if(!_2f||(_3b&&_38.getMonth()>_2d[1])||(_3a&&_38.getDate()>_2d[2])){
|
||
|
return null;
|
||
|
}
|
||
|
if((_3b&&_38.getMonth()<_2d[1])||(_3a&&_38.getDate()<_2d[2])){
|
||
|
_38=dojo.date.add(_38,"hour",1);
|
||
|
}
|
||
|
return _38;
|
||
|
};
|
||
|
function _17(_3c,_3d,_3e,_3f){
|
||
|
var _40=function(x){
|
||
|
return x;
|
||
|
};
|
||
|
_3d=_3d||_40;
|
||
|
_3e=_3e||_40;
|
||
|
_3f=_3f||_40;
|
||
|
var _41=_3c.match(/(''|[^'])+/g),_42=_3c.charAt(0)=="'";
|
||
|
dojo.forEach(_41,function(_43,i){
|
||
|
if(!_43){
|
||
|
_41[i]="";
|
||
|
}else{
|
||
|
_41[i]=(_42?_3e:_3d)(_43.replace(/''/g,"'"));
|
||
|
_42=!_42;
|
||
|
}
|
||
|
});
|
||
|
return _3f(_41.join(""));
|
||
|
};
|
||
|
function _24(_44,_45,_46,_47){
|
||
|
_47=dojo.regexp.escapeString(_47);
|
||
|
if(!_46.strict){
|
||
|
_47=_47.replace(" a"," ?a");
|
||
|
}
|
||
|
return _47.replace(/([a-z])\1*/ig,function(_48){
|
||
|
var s,c=_48.charAt(0),l=_48.length,p2="",p3="";
|
||
|
if(_46.strict){
|
||
|
if(l>1){
|
||
|
p2="0"+"{"+(l-1)+"}";
|
||
|
}
|
||
|
if(l>2){
|
||
|
p3="0"+"{"+(l-2)+"}";
|
||
|
}
|
||
|
}else{
|
||
|
p2="0?";
|
||
|
p3="0{0,2}";
|
||
|
}
|
||
|
switch(c){
|
||
|
case "y":
|
||
|
s="\\d{2,4}";
|
||
|
break;
|
||
|
case "M":
|
||
|
s=(l>2)?"\\S+?":"1[0-2]|"+p2+"[1-9]";
|
||
|
break;
|
||
|
case "D":
|
||
|
s="[12][0-9][0-9]|3[0-5][0-9]|36[0-6]|"+p3+"[1-9][0-9]|"+p2+"[1-9]";
|
||
|
break;
|
||
|
case "d":
|
||
|
s="3[01]|[12]\\d|"+p2+"[1-9]";
|
||
|
break;
|
||
|
case "w":
|
||
|
s="[1-4][0-9]|5[0-3]|"+p2+"[1-9]";
|
||
|
break;
|
||
|
case "E":
|
||
|
s="\\S+";
|
||
|
break;
|
||
|
case "h":
|
||
|
s="1[0-2]|"+p2+"[1-9]";
|
||
|
break;
|
||
|
case "k":
|
||
|
s="1[01]|"+p2+"\\d";
|
||
|
break;
|
||
|
case "H":
|
||
|
s="1\\d|2[0-3]|"+p2+"\\d";
|
||
|
break;
|
||
|
case "K":
|
||
|
s="1\\d|2[0-4]|"+p2+"[1-9]";
|
||
|
break;
|
||
|
case "m":
|
||
|
case "s":
|
||
|
s="[0-5]\\d";
|
||
|
break;
|
||
|
case "S":
|
||
|
s="\\d{"+l+"}";
|
||
|
break;
|
||
|
case "a":
|
||
|
var am=_46.am||_45["dayPeriods-format-wide-am"],pm=_46.pm||_45["dayPeriods-format-wide-pm"];
|
||
|
s=am+"|"+pm;
|
||
|
if(!_46.strict){
|
||
|
if(am!=am.toLowerCase()){
|
||
|
s+="|"+am.toLowerCase();
|
||
|
}
|
||
|
if(pm!=pm.toLowerCase()){
|
||
|
s+="|"+pm.toLowerCase();
|
||
|
}
|
||
|
if(s.indexOf(".")!=-1){
|
||
|
s+="|"+s.replace(/\./g,"");
|
||
|
}
|
||
|
}
|
||
|
s=s.replace(/\./g,"\\.");
|
||
|
break;
|
||
|
default:
|
||
|
s=".*";
|
||
|
}
|
||
|
if(_44){
|
||
|
_44.push(_48);
|
||
|
}
|
||
|
return "("+s+")";
|
||
|
}).replace(/[\xa0 ]/g,"[\\s\\xa0]");
|
||
|
};
|
||
|
})();
|
||
|
(function(){
|
||
|
var _49=[];
|
||
|
dojo.date.locale.addCustomFormats=function(_4a,_4b){
|
||
|
_49.push({pkg:_4a,name:_4b});
|
||
|
};
|
||
|
dojo.date.locale._getGregorianBundle=function(_4c){
|
||
|
var _4d={};
|
||
|
dojo.forEach(_49,function(_4e){
|
||
|
var _4f=dojo.i18n.getLocalization(_4e.pkg,_4e.name,_4c);
|
||
|
_4d=dojo.mixin(_4d,_4f);
|
||
|
},this);
|
||
|
return _4d;
|
||
|
};
|
||
|
})();
|
||
|
dojo.date.locale.addCustomFormats("dojo.cldr","gregorian");
|
||
|
dojo.date.locale.getNames=function(_50,_51,_52,_53){
|
||
|
var _54,_55=dojo.date.locale._getGregorianBundle(_53),_56=[_50,_52,_51];
|
||
|
if(_52=="standAlone"){
|
||
|
var key=_56.join("-");
|
||
|
_54=_55[key];
|
||
|
if(_54[0]==1){
|
||
|
_54=undefined;
|
||
|
}
|
||
|
}
|
||
|
_56[1]="format";
|
||
|
return (_54||_55[_56.join("-")]).concat();
|
||
|
};
|
||
|
dojo.date.locale.isWeekend=function(_57,_58){
|
||
|
var _59=dojo.cldr.supplemental.getWeekend(_58),day=(_57||new Date()).getDay();
|
||
|
if(_59.end<_59.start){
|
||
|
_59.end+=7;
|
||
|
if(day<_59.start){
|
||
|
day+=7;
|
||
|
}
|
||
|
}
|
||
|
return day>=_59.start&&day<=_59.end;
|
||
|
};
|
||
|
dojo.date.locale._getDayOfYear=function(_5a){
|
||
|
return dojo.date.difference(new Date(_5a.getFullYear(),0,1,_5a.getHours()),_5a)+1;
|
||
|
};
|
||
|
dojo.date.locale._getWeekOfYear=function(_5b,_5c){
|
||
|
if(arguments.length==1){
|
||
|
_5c=0;
|
||
|
}
|
||
|
var _5d=new Date(_5b.getFullYear(),0,1).getDay(),adj=(_5d-_5c+7)%7,_5e=Math.floor((dojo.date.locale._getDayOfYear(_5b)+adj-1)/7);
|
||
|
if(_5d==_5c){
|
||
|
_5e++;
|
||
|
}
|
||
|
return _5e;
|
||
|
};
|
||
|
}
|