| /* |
| Copyright (c) 2004-2009, 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.posix"]){ |
| dojo._hasResource["dojox.date.posix"]=true; |
| dojo.provide("dojox.date.posix"); |
| dojo.require("dojo.date"); |
| dojo.require("dojo.date.locale"); |
| dojo.require("dojo.string"); |
| dojox.date.posix.strftime=function(_1,_2,_3){ |
| var _4=null; |
| var _5=function(s,n){ |
| return dojo.string.pad(s,n||2,_4||"0"); |
| }; |
| var _6=dojo.date.locale._getGregorianBundle(_3); |
| var $=function(_7){ |
| switch(_7){ |
| case "a": |
| return dojo.date.locale.getNames("days","abbr","format",_3)[_1.getDay()]; |
| case "A": |
| return dojo.date.locale.getNames("days","wide","format",_3)[_1.getDay()]; |
| case "b": |
| case "h": |
| return dojo.date.locale.getNames("months","abbr","format",_3)[_1.getMonth()]; |
| case "B": |
| return dojo.date.locale.getNames("months","wide","format",_3)[_1.getMonth()]; |
| case "c": |
| return dojo.date.locale.format(_1,{formatLength:"full",locale:_3}); |
| case "C": |
| return _5(Math.floor(_1.getFullYear()/100)); |
| case "d": |
| return _5(_1.getDate()); |
| case "D": |
| return $("m")+"/"+$("d")+"/"+$("y"); |
| case "e": |
| if(_4==null){ |
| _4=" "; |
| } |
| return _5(_1.getDate()); |
| case "f": |
| if(_4==null){ |
| _4=" "; |
| } |
| return _5(_1.getMonth()+1); |
| case "g": |
| break; |
| case "G": |
| dojo.unimplemented("unimplemented modifier 'G'"); |
| break; |
| case "F": |
| return $("Y")+"-"+$("m")+"-"+$("d"); |
| case "H": |
| return _5(_1.getHours()); |
| case "I": |
| return _5(_1.getHours()%12||12); |
| case "j": |
| return _5(dojo.date.locale._getDayOfYear(_1),3); |
| case "k": |
| if(_4==null){ |
| _4=" "; |
| } |
| return _5(_1.getHours()); |
| case "l": |
| if(_4==null){ |
| _4=" "; |
| } |
| return _5(_1.getHours()%12||12); |
| case "m": |
| return _5(_1.getMonth()+1); |
| case "M": |
| return _5(_1.getMinutes()); |
| case "n": |
| return "\n"; |
| case "p": |
| return _6[_1.getHours()<12?"am":"pm"]; |
| case "r": |
| return $("I")+":"+$("M")+":"+$("S")+" "+$("p"); |
| case "R": |
| return $("H")+":"+$("M"); |
| case "S": |
| return _5(_1.getSeconds()); |
| case "t": |
| return "\t"; |
| case "T": |
| return $("H")+":"+$("M")+":"+$("S"); |
| case "u": |
| return String(_1.getDay()||7); |
| case "U": |
| return _5(dojo.date.locale._getWeekOfYear(_1)); |
| case "V": |
| return _5(dojox.date.posix.getIsoWeekOfYear(_1)); |
| case "W": |
| return _5(dojo.date.locale._getWeekOfYear(_1,1)); |
| case "w": |
| return String(_1.getDay()); |
| case "x": |
| return dojo.date.locale.format(_1,{selector:"date",formatLength:"full",locale:_3}); |
| case "X": |
| return dojo.date.locale.format(_1,{selector:"time",formatLength:"full",locale:_3}); |
| case "y": |
| return _5(_1.getFullYear()%100); |
| case "Y": |
| return String(_1.getFullYear()); |
| case "z": |
| var _8=_1.getTimezoneOffset(); |
| return (_8>0?"-":"+")+_5(Math.floor(Math.abs(_8)/60))+":"+_5(Math.abs(_8)%60); |
| case "Z": |
| return dojo.date.getTimezoneName(_1); |
| case "%": |
| return "%"; |
| } |
| }; |
| var _9=""; |
| var i=0; |
| var _a=0; |
| var _b=null; |
| while((_a=_2.indexOf("%",i))!=-1){ |
| _9+=_2.substring(i,_a++); |
| switch(_2.charAt(_a++)){ |
| case "_": |
| _4=" "; |
| break; |
| case "-": |
| _4=""; |
| break; |
| case "0": |
| _4="0"; |
| break; |
| case "^": |
| _b="upper"; |
| break; |
| case "*": |
| _b="lower"; |
| break; |
| case "#": |
| _b="swap"; |
| break; |
| default: |
| _4=null; |
| _a--; |
| break; |
| } |
| var _c=$(_2.charAt(_a++)); |
| switch(_b){ |
| case "upper": |
| _c=_c.toUpperCase(); |
| break; |
| case "lower": |
| _c=_c.toLowerCase(); |
| break; |
| case "swap": |
| var _d=_c.toLowerCase(); |
| var _e=""; |
| var ch=""; |
| for(var j=0;j<_c.length;j++){ |
| ch=_c.charAt(j); |
| _e+=(ch==_d.charAt(j))?ch.toUpperCase():ch.toLowerCase(); |
| } |
| _c=_e; |
| break; |
| default: |
| break; |
| } |
| _b=null; |
| _9+=_c; |
| i=_a; |
| } |
| _9+=_2.substring(i); |
| return _9; |
| }; |
| dojox.date.posix.getStartOfWeek=function(_f,_10){ |
| if(isNaN(_10)){ |
| _10=dojo.cldr.supplemental.getFirstDayOfWeek?dojo.cldr.supplemental.getFirstDayOfWeek():0; |
| } |
| var _11=_10; |
| if(_f.getDay()>=_10){ |
| _11-=_f.getDay(); |
| }else{ |
| _11-=(7-_f.getDay()); |
| } |
| var _12=new Date(_f); |
| _12.setHours(0,0,0,0); |
| return dojo.date.add(_12,"day",_11); |
| }; |
| dojox.date.posix.setIsoWeekOfYear=function(_13,_14){ |
| if(!_14){ |
| return _13; |
| } |
| var _15=dojox.date.posix.getIsoWeekOfYear(_13); |
| var _16=_14-_15; |
| if(_14<0){ |
| var _17=dojox.date.posix.getIsoWeeksInYear(_13); |
| _16=(_17+_14+1)-_15; |
| } |
| return dojo.date.add(_13,"week",_16); |
| }; |
| dojox.date.posix.getIsoWeekOfYear=function(_18){ |
| var _19=dojox.date.posix.getStartOfWeek(_18,1); |
| var _1a=new Date(_18.getFullYear(),0,4); |
| _1a=dojox.date.posix.getStartOfWeek(_1a,1); |
| var _1b=_19.getTime()-_1a.getTime(); |
| if(_1b<0){ |
| return dojox.date.posix.getIsoWeeksInYear(_19); |
| } |
| return Math.ceil(_1b/604800000)+1; |
| }; |
| dojox.date.posix.getIsoWeeksInYear=function(_1c){ |
| function p(y){ |
| return y+Math.floor(y/4)-Math.floor(y/100)+Math.floor(y/400); |
| }; |
| var y=_1c.getFullYear(); |
| return (p(y)%7==4||p(y-1)%7==3)?53:52; |
| }; |
| } |