From 58b337cb18a73a33dde25981b7e828e3d4df4992 Mon Sep 17 00:00:00 2001 From: Gilles TOUBIANA Date: Thu, 11 Aug 2016 15:33:27 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Modification=20du=20format=20par=20d?= =?UTF-8?q?=C3=A9faut=20de=20gregorien()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Il s'agit désormais de '%Jp %Mlb %A'. --- dist/README.md | 4 ++-- dist/acte-0.0.15-dist.zip | Bin 33407 -> 33414 bytes dist/acte.min.js | 2 +- dist/acte.min.js.map | 2 +- .../prototypes/Jour.prototype.gregorien.js | 6 +++--- test/jasmine/acteSpec.js | 2 +- test/jasmine/lib/acte.js | 6 +++--- test/jasmine/lib/acteSpec.js | 2 +- test/spec-JourGregorien.js | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dist/README.md b/dist/README.md index 9173114..3fb3c02 100644 --- a/dist/README.md +++ b/dist/README.md @@ -64,13 +64,13 @@ Pour formater une date grégorienne. | Paramètres | Type | Par défaut | Description | | --- | --- | --- | --- | -| [format] | Chaîne | '%J %Mlb %A' | Le modèle de formatage :

BALISES
`%A` ou `%AN` - Année
`%D`, `%DM` ou `%SM` - Décade/Semaine dans le mois
`%J` ou `%JM` - Jour dans le mois
`%JA` - Jour dans l'année
`%JS` ou `%JD` - Jour de la Décade/Semaine
`%M` ou `%MA` - Mois dans l'année
`%S`, `%SA` ou `%DA` - Semaine/Décade dans l'année

FILTRES
`1` - mois ou jour sur 1 caractère
`2` - mois ou jour sur 2 caractères
`3` - mois ou jour sur 3 caractères
`a` - mois ou jour en Abrégé
`b` - en Bas de casse (minuscules)
`c` ou `m` - en Capitales (Majuscules)
`f` - Féminin de p (première ou 1re)
`l` - chiffres en Lettres
`o` - lettres ou chiffres en Ordinaux
`p` - Premier ou 1er
`r` - chiffres en Romains
`v` - chiffres en lettres (Vieille notation)
`z` - Zéro devant le chiffre
| +| [format] | Chaîne | '%Jp %Mlb %A' | Le modèle de formatage :

BALISES
`%A` ou `%AN` - Année
`%D`, `%DM` ou `%SM` - Décade/Semaine dans le mois
`%J` ou `%JM` - Jour dans le mois
`%JA` - Jour dans l'année
`%JS` ou `%JD` - Jour de la Décade/Semaine
`%M` ou `%MA` - Mois dans l'année
`%S`, `%SA` ou `%DA` - Semaine/Décade dans l'année

FILTRES
`1` - mois ou jour sur 1 caractère
`2` - mois ou jour sur 2 caractères
`3` - mois ou jour sur 3 caractères
`a` - mois ou jour en Abrégé
`b` - en Bas de casse (minuscules)
`c` ou `m` - en Capitales (Majuscules)
`f` - Féminin de p (première ou 1re)
`l` - chiffres en Lettres
`o` - lettres ou chiffres en Ordinaux
`p` - Premier ou 1er
`r` - chiffres en Romains
`v` - chiffres en lettres (Vieille notation)
`z` - Zéro devant le chiffre
| | [erreur] | Chaîne | 'Pas de correspondances.' | Le message d'erreur | | [rappel] | Fonction | | Une fonction de rappel | **Exemple** : ```js -new acte.Jour('1/1/1600').gregorien('%J %Mlb %A'); // '1 janvier 1600' +new acte.Jour('1/1/1600').gregorien('%Jp %Mlb %A'); // '1er janvier 1600' ``` * * * Créé et maintenu par [@gtoubiana](https://github.com/gtoubiana/).
diff --git a/dist/acte-0.0.15-dist.zip b/dist/acte-0.0.15-dist.zip index 60cb36027bcd918edf9a9076d2724463fa74631c..177003d2bb1d5e6184587ca4a38e69fa38870e67 100644 GIT binary patch delta 18377 zcmV(|K+(VdgaU?z0vAwA0|XQR00;;G^m_|Q%}RP3t{MOU^syJU7=LXBPmfopgQw5v zav%rjRa^{~e6Yy!oEMucUDA&w3!RSoeU0r#Yj0N?!^re(IepTRfkx!fr)OcN$H-YS zE@k@LwVLVl7t{Uo(X)`EAQR8sPIQIh`RF7hzHLkeU=^-sJ=h$n5YZj4!Xx;R^{vrT^ak(n0dBRf}i`?4vA#-3o#jbT0;3(phn z0N=s8as63{KU%FCd~_4<=$XJfBE+K(;_*$y;|lRO+>stvq@XJl*%3O$A239_da-abtyVp!0ew# zhbMFC_}SI5i~%G{caK-qWh9*OZhYzJ7SvyPx9oe@%X<61;WCDAIF;w2K(uUmnISYlwMyass6TrT$``{7f?$B z1QY-O2nYc5dkaasiQSgCU;qG5v+Ww29)DYZ(&5!Tk%IeZZ$wfploCE}@f=n4Cox%q z5$eSiis}nqK14x7?+zaVi0|h`-m{MNYGJ!a7j=VHsB zv+<<*Q@6^2q*Jkzw;#;OL>#Ap{rF-vP8yTz48I?OcaJT~#66fcK;nY>DU6!zjDI-b zW*FTa#UaS~%YNL!hr_7I?lEr=*c17dM-n+=CHWIiXYLLj%#lH*`+=J7g6A;@(lncD07u517twFf6OMcM5WZ1@59G|nOy z@nF9vo`J4clNjhaIA}7uAB2}64u9vtIDF)Mx3}0&e19#zQ%KDI^8gkLiNmf_h)y%k zUil!SkU9BsdmMwP_)b3O{rvzIiHO7gyNS?ILJnTVaUFrqfH=L z9!lSkJ>0)Zz(F5+F_07NPLz|QAos`>L|y%|&+-V5yZ13XZ*YfPJRAA9IDgngL{7m7 zdq%F^BnxpgoQt_~7^FM!ID80`aD#Bi-3`zTUf(8ao2bQgUM=?hSY|Vmbg(DK-q$Q> z@c)~F_S(ZK+d5?So%?vc>|Gb*<-P7+J)z6GFF022&22&~zz`DXDK_MNr!FF%DSV7~ zLkX1`0btzBr$iTRza*Cpn19Z^wlJizcyujxksOHP^bY#EyJy)zN9_Zr`zhJiSTpqc z)U&&LI?3`~heG>7a&LB3rKJ#ERI9Dgb5@gv5>_IGcN zqogh!l0LPbJdIt+65iF)bsZnC0(koN$<8<0@zLR%-Mz!Zr`jGQdyeI6{rmaU^(;?o zYR|sc==zpYczH{SuWr%4+4;$V>^9zYa=Dyp_O%0fH2X@UPw-p#n>y>J_OG8DP21Vg zCX3PH>DXT2!QPmZQGe7k?P}@JT?|?wxGzTA`KG9e)A?WFEivEhXacdOZ7dg-w(vcB z zzAvz75st{hY6J&-e7!u_K4;VtYxB9z) zGR>MoqlBP$Hz1)};l1`95%iCLXn%tj+tK_@2_X=)we@ZA_Dk@9w7l28e}-9O&??q# zoN#ji@2%O~|9=S7L33(%Hqh_5febP2AtR;2f=c;sftGi1Mqfdr7rxa*Extu+C3=`l zs*_A)fG}v&0wol&fOkdhJv^kS5I>&fFFi+UmS4V=dy?gFNBRXte&?HS;M+GEssL?U zJG3u7)Anpj+c$5`#mKYgzBUJipv_Fjo-e1+-N)8K8-Kfw^W|4~xc>4hJeX7W8gGnQ zlnB{>jokT1&%VC#HKVN8wvRn)0qtDW1~&ACg?8pHFKyE?8JKQ>nw!9TB!bh#-BDV( zR4(Z?PFq+Y82>f3o%h;}@6Q)ccXqC!b(WWvKR=Fs384({;d7$mv58E zxEp8VT1Vu|2x6P>{a#Z$N+VyEl$@VNTy$Ui58YW9>;vNr`bi1#0RFXq(wn6ExM$&e$FC zsJ8=^ww$r)?R?(v_3;)jr0ACj(a0sX`hVKL$g~K*>_lQB-4zGY@-|@9TccXj>qe#2 zEVr7~qE@NbjH*$pG^%BI1A5_WtEg?mQ@N_^;;CF~yeq~~H1v9@R&UfB0)<|x8})L9 zP?Rf1jUSrLW`LnmPGD&2<&pt-Y9SG2o$vv?uGbm@MWxcF| z2U`&K0>FX-AElnJ~S2l_q^5@&ejOOb~<7|39p*7!y<)FY4x zoeJf~)Mj7)uURA=!R=>Z!q^1qgUq9kqp3w=h*#M_L;gV|jcyWzSG>4NDQYj4vrEfU z$y)3tLXb9SjS@76-fA|QN=DNqg@5)4I;78>z>DoP7?s5xccNPgE0B2)91d=5`-5-{ z$Z31mRF{YKP3fja?3>%r3tFu@NUPqcf-tv?atoxtiIS{W^d|NR9X{6@6$GkauM9eZ zVKkuMZey+n!a+U*WFP**OB2z+|9aJ+i~w0fXh6`=0RRzU?~?FA&xUl&Z+{>pWozQ! zDk3g3aHXu%gKo4Ko1u%cx3R>Egio(E3A7w#pi+bP3S+GCZ@nS`;|s!8Dq*)L&=!5g z8qsT$NvIg&ok=seURAmDYCT?8tRYp0fpqb?A}YtU7%d5dc-hvCfCh;&!5qVoGw33N zsBeRbEyoIM3YZ8RHjqfH(SL7HF4NSAQNdVrT`CsKlPIgn<-|}3_BZ6b4GAoKk+9X} zHj>fAUbgEp8u_KBU|LNE&U~rLjVT@^T=M7b^7#B(FaT8{r8rfeI*OB$t~K&A&km}y(iwQZ!a#?f$(46zxh@)D%!!Pjj)4!W&J zP$}9X9wkt38^L!a3+Y*+tsKV@RWHq?WNo7&B}FDPIhi@E&vuC1NHtt+xQnwX!Xalc z5}er9V+@GXCS!~mRDX{PPOQP>?W>}!EEABF61gd2spW+FiRu@_8qpH#6$u6yay4Vz z&=Z0m<8!iI!eS+C>GBdH93k0G@G*FeS5!bnywVk-pWuB(hL016iMdJ^XUFD}3{Sca zSUc0k_SF?AT?-W;Xfv1u&=tRdkHDIuqV*}s$N2zEWFw^t3V(TFfqnyoMbO3z%ey5H z7;A2LFojEOZrUEtIbjM$(@moc^Qg78_HOB#M8M0?qW1Ra!1f&UEL0zXtY{b-l7fw;lW9=jWL_ zwmheF3FppTiR31IWy@&C+t=xFyHD{aAvrWCwWG5U5Icf$C?h$fGgL zJ!`!9d<=hW@)Rr{HVzRM9D;PT5Op-c^fFj5Eij;3AY)BPXn;kAmNy!*b$CaU8%@y~ zTHKK#Q7f|zil%23z|p*~qWI#x8BJx7W3)GoCR?;vAb%Q=26mPvnTVlqSJ@^d!yS7} znao1v|M)HSFVa<%J?o#L_*Y5%tH!Cqf3?KFy5e6$`7cBjBn99#fx1#^&|jjCo{dsX z@i#;i{}A%5gviPzY)Smn#6JxLs^b$*un>8z6!Banv=GF=KLp&wY-pk*YC_OJxCVb{ z(qEis)qhJ>2~!oDxzs{RN_En3r7{f+C33h_N_CuYRZ9*0Rzq6hufflCd4^WPi4mkW z`7cf>>LtBJKUJEvmC7wbRj(8NhQW>ylq)PH!c-x$8zkUV3UIkX>@VRIPj8k;Aj>6m z=ooqlo5e7=DwR^T6^(wCQj^5Dgp*A8p~5OeU4QTmnz2GZEdhydHRPdD$8thkjS_W- zCYRbO>HO2eK2xUJRP++{9;1Yvq*5UeEV)uEm80HQsZ%>t08By+)G9!c{M!La8@ORm=r6*YifPo_$X@GUMpuyG!3f=Mvo>y#9Fd+lPq< zF0(v92aD>3cW|RV-q5*N z03_QX#@Ksa8{~SH&0DNt=v@AT%*}*9S$}`5KUq)ull6uH)<6q-n2ruB;fU4Ipw1M9%V0Ew?&O9pxpEPM0e#r0RZ-~(cXGq1)rH=wRRRZYs~k9kjamXj1yo6+T&+d! z;>ey9V%|?i#*)(cF#zyEDZ&d=%a=Bc8h(kFPm4A_o zHsl;kMqv6PTzAm5@MiKqh`0<+`h%mBz4nWr`^QJ!=j-@|wg0m2O}uD6OqfjY7W?p4 z_5$%5nya??EiOI3W%FNumziNQX*+uOnvqME)fha8YgppfXeC-wx%R&N`iE+%{mdnz z2e%Kdt<Se`?MIG(5$A=~hzUWQ0Z%dnao==q zZEkOT6u#F(FQ-9mcT0HI`(5L z#C2(NUBX}fane--5NJPNKu@Rqz(0N(yzPGZUz8kspkF^t@PDZ__bnWANs!@1{PK^G zZVCQqET!hQzE z19cT%MF(-bwLIVE^>mcH$W{84d(;0noe3&q-Opp)DU6WkZ%?(2iRlz>H-9Mn1pk%b z7y8WR57BCeXMfG7=EwrT9eqbET>Mhh(s=fT|t1Y%vH+Fgr~q^8pqF!T zG_#6ckrjy20bgfQke^R4KQiOn|K2WaBEjRGZ?;PB zR49V%Uuj&CXP$qdp(Q^5QVcG)U`w-{%xsKPd&CHF=`ClOS@YZZ%Cobx<|}o_zAb$D ze?GgL3x9R)e2qSzE^qDJ{Q0^a*yiVE&sXr*mN&BhP@lMg zjlFw+l*Ml##&o)ny7WG-vs@EX-h34?`N zWuU%>F|PQg>#b5#rz$}KdKH5~vAh=0h<{gsW_wv0FgWO24<;XoFslS zn#~e=^s9ioR7D!)z~NT2gqwToMze*1nJp1k+iH~>xDKvYfw?V1#QwHw6t1XOYkv)B z6pUTgrR^b2Y#q$gs_3N#QcT`vXiVZ$wE>xoT1%|3H7Md!#|F`{$Yw-SjiMa&db8Fl zl^az~S8Jkk2lqDpRRbNDP&-waBm0!b*7BZ%9Kke=ViWNRLmMfQ5#u2PzTzZ{Tsk*P zn|>W@c_l?ny3QxcJa(7-0Lbi5VSf~)>wS`=C$Y=($3*}Ic(#Kw@Hr?4pQ)_8mOPG| z+;m)sh2aj=xSlx%uKq4MGdSC$=gu&yRAW>4H|f-|FE8`VP0yTZ;V`3(wQa5KTu*T~ zNl?cKS{y(TLWhuo1rcO&`3O;23tE?9&_YW@X@M$ilpC#j1vF@@+HBS93V&fsWse<= zBpu2SCZ-D`wVF(fi)sAb7)QmgXWiCNA}EI-v3FYY=7qFNf~x(G28s| zKeVxZi#;(L{1U)>1hn+Bh4BPghqG5x0|eS-jxZu*p;9!2Qd0>WAzLYAgvcyvm-!0p zGOfHWAE&se#0N^1IBR9RAq|p$GNmwcHc*MLCN|yJK}Bl|j^JYAltWQc+%zuJ-}EP za`0)G2{+#bt~g{ThQLGtM>>2x6}-c*7@-nl;tl7B!D#&u-(gv0FCjov?w}?QLQ!fvQes5o6TCeTB}wRJtr(@Ro4lNFr6ZCJ=KM5z;Wx^ zW3Bvc{KF*c!~WR9jg?uSPqRL}kv~MA=(Jo%`;PXG#>ms8qNGik-^vh(6msuqi7&}h zGnLp36}AFNuzx|sq|v5X0a*m%x5(gkZ_DqrtwfUk4x0N-Dp@Yth+f_WX4BlgE4(S< zxxvYtl_X3>hLQ0yd^HJQ-AuI38CIR@vmI?r+ob7c&8Q`SFL3#w)@rp%l|}`Z3ouiu z+DL%W@e+r)D-nnT@^qklxnjX*~UqufsD1Bmc}H3VTBDt|fV!Yp08w>zi(k?GgOfh%)&`Vo(QnSPd{EwVA<*)ntVnveYXbm_a~RUi9w zc+9Tr&7f`4hFbnmnjDmRU#nTO$0@4%8I4jrM%8fi9maJs9<~z#fT(&L?*lqPgU_1q&QK?jdO+t9y zPo-g0!1%6Ljat2;a{eputWpDO`J58l7Brv zv<`)3sFziip+FjnnZ3MT>YJPVt#~jZ^2ZxK-5$~4Y^cv4(*2LQAMD^con(1q|8mA zWP!p&3kW%+wBC^~24sp3jn9SE%Q994NiwXSK&$}I9yfyS#&C%t6I4bsn=UZ zvqDi`RnYm3a>FnxwQ9Lqk0Gj*K?PPDdW%kms`C+4t(LAgtL3`h(pyy>2MR`_8?|Pw zsy8cGnvBH&b=<>lKP027fekIB6ZPC#cuUy3we&s&zV~jsW#~Q?KdOmR@c(V|X|Z z5LyOY)k>|_RBpPCb93dunP9$R%sk5f~p>-qp2ql=vB(R8Lkx# z(XCUEDMVVJHWiv4VV1H^9+NN&8veu38)P(F;g?FhuES(iVK70J1f)*UsOY9Yv-0ta;vEUndBA-5aNkQ0PD)zb5YJ#`(F)C}WNodMv(tju+=bEPUO3u{m3H>OH% z(=i8Zqxq&|6atiTGX`Zx5+Hc6S(Ld_~ zU1jV+Jp>IA3Eb{dO+`XRMVXGZ>#DA5ScGaN?CrE%)P_Y3FFGm)Tq#O@hn`Q00!xwk z6Ps!frNxkO#gKH>WFu`3$MyR|En)R_0qm1GUf7$Gw@bc4KtS{ZzWp^O+W|Aawtf9V zVlvv!v3nWNDu0$3yUy}(K&Na;$%e#RaT}9fZPw5(G0M#*-P6L#s@AO6Yt?4G3Lr2| zSJ@b$SgZ`o3rJDe6?{5&a-!^q)<$}zBsG;K10(6nq7RkeLvrXH&l4*i>{%6wQL=Ah zQ#@0Iu43SR6ZaBS$R{T@8vrxOug2pr7>CuAp#tDQ7k`GdwyKS4DK^80;&gR!Y`HWV zhHSaeVvipV`t@=pRoFHcR-w^1RhXeJOvhafU?!snxY}r7(0{YusI;2GeMlE!)xjRl zs#^^#*>q_Yb!n|i$$&D@2>IU>oD*UA2nL$V$Cw)UpZ#!{2Bm%c^G7jLZgTEy;2) z>bg`fqkjxGT~<-mTAGdI4GBCd!Xr{sIYh`8t!+Qk3@r+6j)iYA1Q8QMh}=rL5xGmA6pdH(Cui zH+e_b%c}gxSmxF%Lc*eFM9i+T;q6vaU|=gFCJ zhn^^WD?pdi;gj6@T0K5?YA7EX`hOUiEB+OFJazM*!+t+W@22@3y1WS94VfNecCN)k z;B8{RqOYpr2I864j^7n!sQM@R3RE3gCGFA}2>B>liQVqC{DDrQVI8R-fBDs?(_Spx z9+D-Jnzit?OM9`f?tOduXOYmUWzK&VC-RwTH`^n`v*Uu%1*o+C!rz8ENPp~#xTF1$ zEr{XyfSnK=rBQ72^1Ub?MiN9trj^pDDo7!c(H<~I`#a1nF(!?IwfG9H57DxE#*wsD(GZrUD^UmyEw+ORQ?IIY$(1z`|fYlv55?HuGlsoA{%AM z1V>&2IG%p21Yc8wuhBK=s(*tC@3heMVk6SjG)c|tAe?pm&LN6IGYQ#IBwACQgl>|L z^}Vd#^@FypYfrUpL)AAD7XWQjsC}hg(}IXcJ)Byy-ValE;#0~h%^j716zP?P1^e!1 ze4;DERcLWph()Dt5IVHi3Y7NUGYX(BCxc@X+`-a`i|Z%>=Kq5fK!4DwP?##H%CYF6=cTFEO zpX#D_lX0-MkfoWJqp+C*_sHBG-9Qe^x1H#j30Ronj6G~-KVE{s0ez%eFSi=0InRd? zE(X)~YX&W5Kq^o}UVmPrO6~m_3uuA(!>Fi+L#h)>^I=O9FFL(Yc6Mwt`V^A&)h}w_^xlHM6_{&awp6vxpTk<%6xeG)Fx}vWPjZf*hufjcwHz2lx+oN zVHg3a=}M!*v*(nA(b%0=6(0O({Lz(h2k{XyZy_MjS=Z9-;jtxFxTX*7Wm`e?+12lL z;%T71hkIw4I{WblZ6)-zv&4ONg(+-{>m|y-GnE;FT-w%>F(FeEMt{){k{?#Mga}c*L)_iqh*l6e zzSk1PYh3vDc5KmjCH?>~w(3iPHZaUkPJv=Oq3#7ae+vlu4r`55{|PSFbMDOqg&{Tk z`P&rrvB6b~Xjp@KnRYND0!`z&OJ`gtgq2WSaRvh+^^-Hto#RqgV&0Q6%8k9Es88My z7n7KW4S#TWVAANuzPiE_lc1Yk@}7q<$s_&n02Q=%`{n<1z>3E^Ue?q>OXt1g-bvw3BIxdX5{ZV9X-G*Opp$nR;b zbLxAxbNx#Q#(c=p5Qv82aR^ZIp=}I@ulM#gRDWtAo@cdUNR&bEDeVAe+506rc4M7l z_>`h1Vv(0!NNgq2dQY`l5)9I+$uvS2OM2Z!Y_X)nr}Ck%1ayeF;z@`qma+#)tysz{ zKokdolxjTXX?RWy{P#;TUe21$+tl)sZNU6XMs?fQ*b*!z-+@j1gSN4~q2Wo;2}mz! zwSUx?j2&oVcbV;oHcIF%oEY$j(v7(|x^uvkn?o=CSg?~SE>w(By}o}Yu)ek5DdLd? zv0KkH``hHV2+6jDWX<3tRUi-Xa7&b#r?=t)y_V*}Ej<*D<6fejoAA5<`=|E!0lw5f zuz4;VoZ^;A^drS@^pW*+CKBO2n_7>_On;8L&{hibI+i+jpgWH)@z4U8DQrk>#0`_J zKoRH_!4yCpfJs%Uvi>}Uw(eOYP!d|Ds+G%6>3?l7JliVce7(@^pKU6%YlLw1i2_mC z$m(EbnYlb+`ea?)X+6`o!ucv1FU8Q+D0d3ZQ(9R5?s7VP0~6+~MYaGor_)5lu7A^C zW^`aOwU;@!eX!Y47UrHc!>Lziv*t88kMpeaRPL|n zRiDt648O}%Im4aKnX_d!eiu0U(W~{iA03y#vc2fx6%p&W(8CMFQzCkq@}6%6-gCWX zRFfX-gi{hvKh^O(eX+HoWTZU731>6|LH$Rn9g#`gW5Qc5)yw6S$2ILEMSnX|uYw_I z(Hh%R{;gyxu3-i@Qv(-H=w>BJ`Z z%2@4(I$&cPXxBe@3cG*Yfwqngh&)3$I92gTy&7F@vk0%XS!`$vn55!Vcwvvf{7UER z(?k-DOTEGd(;waS##-bGkAHBwk$i7v?0%QuL#Gr;qu`!+Q|#la2n8dz)+#l#(yK=Q zE4OH+5UiD2g0^ha9ODNNUM=#SsB6;iuPO1aA7lsGKzxYPf`T^~Iw-T7OgN2=IU3WhnpN zg`3#2P2Nl{Flyg==oiK_zCqPpK^4)hh+Xx{^=707bm)8(RcFrU7Io&_7q6Jy0T%qw_#3@>3qY4cTGyGl-4Yv!7bM$-dx%GgL8xz!l3rh z1CzREE$_Ey*nZn|BY(^`F1BtjT)Zj5x3(>R8!vc?Z0-~?9W+rfL^niC6x7Mf#C*BT zHresp!Hq6T3qFB&^={Gx9l+MK@s1VCI_3_D9Fg&*{EF1)WrezAeT7eXIq`a)tk3u@ zGw;~`l$V#8mT{Pq|8Z`)R~nyNx8YFV*ub>`JmYPf_K5KtAAb*<+@%L?dmg`4Nd6j} zX_dHmC`JU~=z&zhD4vZ4&$SvSfzo(RO?zQe7r2GdeMzgKFq&IQbdW6jFrE1JJ!+5n zln%!B&~>Si>vDS|T_B1zOlni~&gf8;aNQKkHI0dqoG@nJ$&@q-%>aLN$LHsBB z@CGTVjaUmx$0s8G@736kp^0q^4Y!$sxTt^)7?+oC;SINLvS4iG6{{%8q~qIH6cfj_ zo{WUbitCA1t3eo8a zf^m+qOn2vS*g_!^aa`YXTVeVZx7bSQLfG#WjT(%5Z{guxLNl=1Mx61~Xgp-SyNXw$ zj09CNJb$a0q|kH0u#37)RA1o3hQ)_>$cj%e^L16D!*c4|^C=6BUQY6h81@a@{fKLm zCjsi75sbryyxI!L-b`*f*!VF}q+xv(%ASjjF-GbT(XvX8cO)@K{7t@*;L-KQ zw)3Ei(*9cB5nSKnOyt727pG^VH7UY>^nc8}*8NIj#?pbxp@dP!MQPY>^`JHhb;T ziAFr(0?={(FTHx!2C4xaRV6j?Q}`4cGoXM+Eo{c<{fh3%ziy{ouzMrXGgEH9q<`D; z+HyQA?Yguy`k>8BT+p$dxZ^U@Zy98R-Z%q||CPL!qN^(FlR83PG-~AI`{~KK6ZNKJ zjx><^U{(&=>mg;rsDu^S&@UPlg>R5+wkj8!MdV0LL@jV)0*8FgeG=PBJ&-P+<)+9D zmr@28;qgq!R>^m{Z3@ZNmr!LW9Dj*Wn*pMZ=OAtIOh^l;ka@siGA2Yg$VL)T&+?pj zn27ZG8<0_uRGh>t%uA3S-138)j-XjjzKM85XqvT({@&)tk>b87QVa_H^SC3 z^VQ^x56G9BO<~-`^RKjQ62(oRfEoNVF=E(&XZU9t=?l$(XLwtw9Dkr3=1fJj0g#aZ zj!>t00O$a6(OHmV$k$e|1Y;UhrtXutwu*yghNczj$83=j8$ zKL&1pmLpjd2Y$ymxsJk>40}AhlV<54rRDhUOHgrhJXVRtR>$>*)?Y*Y#vLLUKPR}5 z7X=-{QxJ5>H(D>q>3_wZg2#P%=j zGT08C1}?_1Vh3HvdmtvB!tb=c4Hm~1V^|Z*})SRaKp1_U0Yw-uljG+k%3C_aql{4k3&m5Dz`X^Ou@c9sy<~}pa(p- ziWtK|uR%4UJb%(WBVa29ooABZ&V9$-nGFJR6R5iyVGEyfY? zJ@7&9WPDs!2d7S3{eKUw^8^}XW zY0NkbCFht%^0dIpZ_->_~=Dj4#ZJZ(jJuH+#<0_MX5Lv z+1F4W$$tXXyCrf?fJvS+f;V)?$Bbyh7O9Fn?@i&rNkiD3103jYkEe$vsbXV3-8A zy01w%@i}i)PM;ozIVd`u;v6?cK=2O{q%7~TTv2#BE^(+aM=&VQk3ASbs^Qm_t$JPGv!>$`dj69@=yVe9bzR;tcsmt#Rpsc zX@3r}GFlmjSOxPWahlI|=J8ZXam_gGDkYeN1{;CS11gBKs{%i+uDW(9k!Q7-Cd%OV zHIK2vQ=alqhDskNl|F?^ae9^F+$(WpmSmVDttV069NiwaM>3EbsiZ;5BcjRQ(w5Js?`2d*+sk*5^y zQY3~)O@`>^>EK2jMAM2$93v3Xw(2}61{3R;fwwkAo8;EX$q-%H7J^F(OwPDcdw=DW zqC87LZ0ii1$q6m6%yb?fMP3fHP}nPmr(vTHlU6p;2RB9tVkIYCRKcf!Zs8y+E#_0( zj}7oUZ-4q}=ck`a@3ufhQ%;;y8`nadjgOkC;WRD`D0r(E^`bd?7eUjR*HOthmBTAN zq!c5mjA(~%^u7G9G&B9tO#$c`Z+{~>7{?R?V25@(ged`}E!WUvF$TWnfPfgD^>kSt zm+-PS5z_$$fB}`uu`+Qi#lk!ers@#OU5w|I>+?&TjEA*bUa94G2_h1urUrosIAD}TYw_%VWO z+y(O%QL7elx$&e^wE5CA#$C#2=ml@)AaZe9fbPJ@EaWPKodUth8Oj)<>td>J74&LR zYjA*(u&kTwz=rFzDl0sZZ}m8qC}&dCW<||p?_;b>vkn6m3%&?8-rEaY>JU6u^qP1# zVMHMDbTwjj4~vhFw6Pb9`+q^h-5aU{Zce!(@wg{YJNHnV&C<2y_sow8YdW4S_9o`M z4Jb@XSB!kpsesgZzSAbwa%^jb>Sj?2I10rhPPmgO_dC1?f-j3mP9|8;P6O@qOe>@# z*Y2t1L=$d8uPHROZCNQxWzmI(jYJ`V3^V(%lti)LN0a^d7oPV2Ab%H@3yA?UTU603 zu=qeM@~B)238M2xh`6vn&^s2Itg#DzU?d2SB?O&vM7A@w$X{zRak_FQ5ne$zwP$!% z3S>HtD{b7WN_ z7jaU`Kd($M;rcuJ|gy+(KBHU3MP z)Csci3_CDrlc}`YRiO>q;G2+E_My6kQn?wgvS4@>bLYmNN z_@4rf0|vxFHY(&vEGZaWML_voJYQNKl%f%MJ8Hi^4~4he!(R9B z^{c&iTbq~;(pr2()F#Z==jlU!XfgHH4A%prCDOT`){Ua&?*q5^_Rc1q_qdI=Iih(= zhdfC6b4m2Bul zSpP~B`rmFCr@Y%)TOX2k^IM_Uo}u&R-GA?GK5I|EyY#*fb8gE`I9AnUVR@!}$%iE_ z`3Rl&(AhYNCm|SD+G;`@lrF4oz{-tXc-V#0?s^&lr27vW!kDVRe`TIc1m2< zN+iIj{4Y7GPoCNUbnx`IV8m8L=>QLX3#zOwY;ClGHj8@mkje;+LRyqljL$#)G!Ew( z$txg3-^e;sw6viGE$R@pb3CRw-hbP*!q|02@~w*DV%KJbN#&&siCS~nLrcfY^g;E4 zUMG1D564>w8D8WxZH$o6>HIWlV@+mHh0T+&ghjfZOgEnj3nY>5j-LwiB{r1BpqOcC z8YWML?O0S3SIZ!-o3WKR!G{zF1%L5+9tVZQ zJdMeZBt1EX0qTi$%mJLrn!bGBoIHT6HUct+cy)Bozir@G`rDFcC2-ZBZTx+IuKj&D zz105R-gw8`iD&Nk%m1Xn4#6Pv+Ty`CHoSbd@IBYL{=U;b+&k@`ezzmuV?h7>d;6cL zL*VztKg0co36S1Di}-gaAb(GX|BSW_?gW7nVm?SgA&LC^BI7<~?E@xbVN)M zHK@|DHYhy0bYx*1-cZ6D5`2QO6=jA>b_O$*0mhs5CHBBCzs5l?|9{EnWOT&M0$>|h zcuR(}#3MamSc!v=n42?^D>xQmp%sSaM4jadVRyw*A6Uj*D@4bC0XE&U5?Q90C3HAK zIpW-cIF$QOikRawD*%t2;Yb`J7tb-r9O5VsD%tYl0A8|SjuTPkf4z&h8pnr)h9fur)Oeq!1^I)icwh>$a5r*oSpb!_OP{DxGM4d9;;0!5* zyTVSy+pEm^+?u|lFm=>N!M(j;W6_r=Z|Xz=Q!yuCg%(AdDSY3!M?SP<3magq@96b% zd1JE_ngN>!WcU_^nA#MVz3UhdW;(anYLp?%IxfvU*LU#_qX^?li#dNPo2yXNn0H0N zhg1mql{drPUJQ-qZj9zctOei#SjI@OSuL21(YU=%nbuLI62Q_Pw5)rbZm&!3IAQJ< zl#Gec!rVP+1LA+}r$}ANOs(Vfo~A+|5pXgqQU>v3V$5YK?>=Bv9v>&Ns1PZzJPiO- zUrzaxI}YO)6);l{QH+0<<`Y@cYnQ{Pf~3?3z=bL}jthf)Q^uU8ovzEd@@72iFN!sc zP!>>7!}XV)zrStw_J=P{&CAi%bmq>z+fTYt!EFe|Bn~>z^VB7G&Iojy#iuyn@jCK} zo&q#`bq4>FR%jHrT4b-41pmp09&3s#&15(}yy!mTYpAg~CMJKyIYEuEy3*gUAB9Up z?VaT0Q4RJY6OIaNzW{35i6~w9Kc*LYVyUgDR#se#T*7ZHAf2d4idA}lJ>KkR^N=Xt zN77|$a=mKoKax@V@zN}L(^Yn1UyEnM^>{X1!LuRqOg4?zuCQ{hb;^DP9Wm<{N)a_%alRTtcwCOa|f!u^LWm z6fh6c)~9^3K0!$tGwf{AX?mGG_)oHegXNbrkg7)&_D?_W_g2shQz)Q$ zzckZl6xG|Nn}^qP{bZr>q`hF#*{L3F=2A)C>N*J0rU}w= zIh;dBCK2jnX>ul}RcmEk)uGI<-0f-Pvn2NGd8x)a&sLQlWnasr<$U!5z5|tqwL_R(&4cbjH_j zIs==|$Z9&{flXKW>P=@*(-~i<=^j)aY`U!aJiO`juitb!Hl3c;bh`3lEp=6)<*Hx3 z<#cK}{p+;cLu!K!msOp0t?3=D|DtCw7HLvh%UsN)+1~-pH_GC2WP{xw(=Tj`9EaM-&}@mD9F@ ~D1d*Ah zjwDGz=Es(?vH-avSh0X>D+-L?s~J{k!?QMucw5@aa(`nvmX}-3`m(#N;Zbn$<_7H(n5W%Ukcxi`-8` zPm{~!zl0P7=OB*6fh8iZNM6py7#DkKj_^)I$c5RSyemFgfN3(aPF&Z2^7P3LzwJEv z<^KgxO9KQH000OG0Q7qcN%JtK2;c<(0OGUHd%FXFOJKVfj$pfO2Ntj{he!tbeP~M3 zva$)c4QWcVrBfy2$>CAEdpbB7wA|v|Ob)l(LlPML|7wW2YMVPwF?BrLp})NXG3XKE zIG_0};O>A&rt1P0YwFiX3SF!_D;AuY1?HgLgla#UEwN?eXM;J*@dC#oWRE>4@N+MF zhPH=)b~e%u%$^4GT^}2C!Q>Xq>kC%``SP@T{$?$Z9ud*@h?qLnRI7(7sjwRJdsTSQ z+=y!~;fet5ZUpYG1KAo7#i2c-Zp&vDG9n0$9x+Wp^vxZo9Emv7K3;Hj#ln0Wm8d{> zSb{=D-BIqbt5xWjFfa2NatL#$PoSJA9tm=Pj95Iy3us7Ce=5dfY8~Y5@-%($Ueau6 zM`+zL@U;r?MwQ)IWJ1V3*+5kz3tZU=_1M50N%<@cTtA+j8!NvRoSGkR>Q;^me}AS0 zKj7&gabNS}s30&1)4*IQl#q{X;C>NziHme14T5_1zJEak&xGc=Wka-P6v=tHDWS2S47HKS5WCI~_Rs9=@zM7WBU2 zj1FwNoX{~X)xs??o-08mQ-0v-bt000OG0Q7qcNzF=n8?G7v z0Q8g9fh-^NdkaasiQSgCU;qG5o&f+400000000000001_f!C8Df*v3AdkabPFs2CL k1polz4gdfN00000000000001_fxMGlf*c0JfdBvi09jjdCjbBd delta 18393 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 z2><{90000000000q=C45002@&K}1bOE^TB`O9ci10000300RK60002IfdBvi0K`RW A>>0,a=0;if(2==arguments.length)r=arguments[1];else{for(;a=n)throw new TypeError("Reduce of empty array with no initial value");r=t[a++]}for(;a=1620&&e2e3&&e<2100&&(r+=.37*(e-2100)))}return r}return e}(),V=function(){function e(e){var r=[-4680.93,-1.55,1999.25,-51.38,-249.67,-39.05,7.12,27.87,5.79,2.45],t=(e-p)/(100*x),n=t,a=23.43929111111111,o=void 0;if(Math.abs(t)<1)for(o=0;o<10;o++)a+=r[o]/3600*n,n*=t;return a}return e}(),q=function(){function e(e){var r=(e-p)/x,t=r*r,n=A(280.46646+36000.76983*r+3032e-7*t),a=A(357.52911+35999.05029*r+-1537e-7*t),o=.016708634+-42037e-9*r+-1.267e-7*t,i=(1.914602+-.004817*r+-14e-6*t)*w(a)+(.019993-101e-6*r)*w(2*a)+289e-6*w(3*a),c=n+i,u=a+i,f=1.000001018*(1-o*o)/(1+o*j(u)),l=125.04-1934.136*r,s=c+-.00569+-.00478*w(l),h=V(e),v=h+.00256*j(l),M=A(I(Math.atan2(j(h)*w(c),j(c)))),m=I(Math.asin(w(h)*w(c))),d=A(I(Math.atan2(j(v)*w(s),j(s)))),g=I(Math.asin(w(v)*w(s)));return[n,a,o,i,c,u,f,s,M,m,d,g]}return e}(),z=function(){function e(e){var r=[],t=(e-2451545)/36525,n=t*t,i=t*n,c=0,u=0;r[0]=D(297.850363+445267.11148*t-.0019142*n+i/189474),r[1]=D(357.52772+35999.05034*t-1603e-7*n-i/3e5),r[2]=D(134.96298+477198.867398*t+.0086972*n+i/56250),r[3]=D(93.27191+483202.017538*t-.0036825*n+i/327270),r[4]=D(125.04452-1934.136261*t+.0020708*n+i/45e4);for(var f=0;f<5;f++)r[f]-=2*Math.PI*Math.floor(r[f]/(2*Math.PI));for(var p=t/10,l=0;l<63;l++){for(var s=0,h=0;h<5;h++)0!==o[5*l+h]&&(s+=o[5*l+h]*r[h]);c+=(a[4*l+0]+a[4*l+1]*p)*Math.sin(s),u+=(a[4*l+2]+a[4*l+3]*p)*Math.cos(s)}return[c/36e6,u/36e6]}return e}(),X=function(){function e(e){var r=(e-p)/(10*x),t=A(280.4664567+360007.6982779*r+.03032028*Math.pow(r,2)+Math.pow(r,3)/49931+-(Math.pow(r,4)/15300)+-(Math.pow(r,5)/2e6)),n=q(e)[10],a=z(e)[0],o=V(e)+z(e)[1],i=t+-.0057183+-n+a*j(o);return i-=20*Math.floor(i/20),i/1440}return e}(),F=function(){function e(e){var r=C(e,2),t=r-L(e)/86400,n=t+X(r),a=.006493055555555557;return n+a}return e}(),N=function(){function e(e){var r=F(e);return Math.floor(r-.5)+.5}return e}(),O=function(){function e(e){var r=e%4===0&&!(e%100===0&&e%400!==0);return r}return e}(),k=function(){function e(e,r,t){var n=O(e)?-1:-2;return f-1+365*(e-1)+Math.floor((e-1)/4)+-Math.floor((e-1)/100)+Math.floor((e-1)/400)+Math.floor((367*r-362)/12+(r<=2?0:n)+t)}return e}(),P=function(){function e(e){var r=Math.floor(e-.5)+.5,t=r-f,n=Math.floor(t/146097),a=y(t,146097),o=Math.floor(a/36524),i=y(a,36524),c=Math.floor(i/1461),u=y(i,1461),p=Math.floor(u/365),l=400*n+100*o+4*c+p,s=O(l)?1:2;4!==o&&4!==p&&l++;var h=r-k(l,1,1),v=re;)r--,t=N(r);for(var a=t-1;!(t<=e&&e=r[o];)a+=o,t-=r[o];return n+a}return e}(),W=function(){function e(e,r,t){var n=new Date(t,r-1,e);return n.setFullYear(t),n}return e}(),R=function(){function e(e){var r=e.charAt(0).toUpperCase()+e.slice(1);return r}return e}(),Y=function(){function e(e){var r=Math.floor(e+.5)+1524,t=Math.floor((r-122.1)/365.25),n=Math.floor(365.25*t),a=Math.floor((r-n)/30.6001),o=Math.floor(a<14?a-1:a-13),i=r-n-Math.floor(30.6001*a),c=Math.floor(o>2?t-4716:t-4715);return c<1&&c--,[c,o,i]}return e}(),Z=function(){function e(e){var r=Math.floor(e)+.5,t=U(r),n=t[0],a=t[1],o=Math.floor((r-a)/30)+1,i=(r-a)%30,c=Math.floor(i/10)+1;return i=i%10+1,[n,o,c,i]}return e}(),B=function(){function e(e,r){var t=void 0,n=void 0,a=void 0,o=void 0,i=void 0,u=void 0,f=void 0,p=void 0,l=void 0;if("number"==typeof e&&e>-1e4&&e<1e4){var s=S,h=c,v=Math.abs(e),M=r?" ":"-",m=parseInt(v/1e3,10),d=parseInt(v%1e3/100,10),g=parseInt(v%100/10,10),J=parseInt(v%10,10);t=1===m?"mille":m>1?""+s[m]+M+"mille":"",n=m>0?M:"",a=1===d?n+"cent":d>1&&0===g&&0===J?""+n+s[d]+M+"cents":d>1?""+n+s[d]+M+"cent":"",o=m+d>0&&g+J>0?M:"",g>0?(i=h[g],u="-"):(i="",u=""),f=v>0?u+s[J]:"zéro",(10*g+J)%10===0&&(f=""),1!==g&&7!==g&&9!==g||0!==J||(i=1===g?"dix":h[g]+"-dix",f=1===g?"":s[J]),(1===g||7===g||9===g)&&J>=1&&(i=1===g?"":h[g],1===g&&(u=""),f=7===g&&1===J?M+"et"+M+s[10+J]:u+s[10+J]),g>=2&&g<=6&&1===J&&(f=M+"et"+M+s[J]),8===g&&0===J&&(i=h[g]+"s",f=""),p=o+i+f;var x=e<0?"Moins ":"";l=v>0?R(x+t+a+p):"Zéro"}else l="";return l}return e}(),G=function(){function e(e,r,t){var n=1===e||"1er"===e||"1re"===e?"1"+r:e+t;return n}return e}(),H=function(){function e(e,r){var t=e.toString(),n=void 0,a=r?"première":"premier";switch(t.slice(-1)){case"o":case"t":case"x":n=t+"ième";break;case"q":n=t+"uième";break;case"f":n=t.slice(0,t.length-1)+"vième";break;case"e":n=t.slice(0,t.length-1)+"ième";break;case"s":n="ts"===t.slice(-2)?t.slice(0,t.length-1)+"ième":t+"ième";break;case"n":n="et-un"===t.slice(-5)||"et un"===t.slice(-5)?t+"ième":"Un"===t?R(a):a;break;default:n=t}return n}return e}(),K=function(){function e(e,r,t,n,a,o){var i=W(e,r,t),c=W(n,a,o),u=c>i?i:c,f=c>i?c:i;return Math.ceil((f-u)/864e5)+1}return e}(),Q=function(){function e(e){var r=e<10&&e>0?"0"+e:e;return r}return e}(),$=function(){function e(e,r){var t=e.toString(),n=void 0,a=r?"première":"premier";return n="Un"===t?R(a):"un"===t?a:t}return e}(),_=function(){function e(e,r,t){var n=r.reduce(function(e,r){var n=e.replace(new RegExp(r.regexp,t),r.replace);return n},e);return n}return e}(),ee=function(){function e(e,r,t,a){for(var o=h+n*(e-1-1),i=[e-1,0];i[0]=0;n--)r[a[n]]parseInt(c,10)?parseInt(c,10)+i+1:parseInt(c,10)+i;return u}return e}(),ie=function(){function e(e,r){var t="/"===e[0]?"1"+e:e,n=ae(t,g),a=[];if(n[2]&&n[0]<32&&0!==E(n[0])&&n[1]<13&&""!==n[1]&&0!==E(n[1])){if(a[4]=k(parseInt(n[2],10),E(n[1]),E(n[0])),r===!0&&a[4]=h&&a[4]<=M||a[4]>=l&&a[4]<=v||r===!1){var i=Z(a[4]);a=a.concat([i[3],i[2],10*(i[2]-1)+i[3],i[1],i[0]])}}return a}return e}(),ce=function(){function e(e,r){var t=e.replace(/\W?an\s-?([-MDCLXVI]+)\W?/gi,function(e,r){var t=ne(r);return e.match(/-/)?" -"+t:" "+t}),n=[];if(t=ae(t,J),t[2]&&t[0]<30&&0!==E(t[0])&&t[1]<14&&0!==E(t[1])&&(n[4]=ee(parseInt(t[2],10),parseInt(t[1],10),re(t[0]),te(t[0])),n[4]>=h&&n[4]<=M||n[4]>=l&&n[4]<=v||r===!1)){var a=P(n[4]),o=Y(n[4]);n[0]=a[2],n[1]=a[1],n[2]=a[0],n[3]=W(n[0],n[1],n[2]),n[5]=o[2],n[6]=o[1],n[7]=o[0],n[8]=W(n[5],n[6],n[7]),n[9]=te(t[0]),n[10]=re(t[0]),n[11]=E(t[0]),n[12]=parseInt(t[1],10),n[13]=parseInt(t[2],10)}return n}return e}();return r.Jour=function(){function r(t,n){e(this,r);var a=[];this.variables=this.variables||{},this.limites=n!==!1,a=t.match(/\W?an\s-?([-MDCLXVI]+|\d+)\W?/gi)?ce(t,this.limites):ie(t,this.limites),this.variables={gregorien:{jm:a[0],m:a[1],a:a[2],od:a[3]},julien:{jj:a[4],jm:a[5],m:a[6],a:a[7],od:a[8]},republicain:{jd:a[9],d:a[10],jm:a[11],m:a[12],a:a[13]},limites:this.limites}}return r}(),r.Jour.prototype.gregorien=function(){function e(e,r,t){var n=e||"%J %Mlb %A",a=r||"Pas de correspondances.",o=this.variables.gregorien,i=void 0;return o.od?!function(){var e={A:o.a,D:oe(o.jm,o.m,o.a,1),JA:K(1,1,o.a,o.jm,o.m,o.a),J:o.jm,JS:o.od.getDay(),JSl:m[o.od.getDay()],M:o.m,Ml:d[o.m-1],S:oe(o.jm,o.m,o.a,0)};i=n.replace(/%[ADJMNSabcflmoprvz123]+/g,function(r){var t=void 0,n=r,a=!0;r.match(/A/)&&(n=r.match(/AN/)?e.A:e.A),r.match(/J/)&&(n=r.match(/JA/)?e.JA:e.J),r.match(/M/)&&(n=r.match(/MA/)?e.M:r.match(/JM/)?e.J:e.M),r.match(/D/)&&(n=r.match(/DA/)?e.S:r.match(/DM/)?e.D:r.match(/JD/)?e.JS:e.D),r.match(/S/)&&(n=r.match(/SA/)?e.S:r.match(/SM/)?e.D:r.match(/JS/)?e.JS:e.S),r.match(/r/)&&(n=T(n)),r.match(/z/)&&(n=Q(n)),r.match(/l|v/)&&(r.match(/[^JDS](MA|M)/)?(n=e.Ml[0],a=!1):r.match(/(JS|JD)/)?(n=e.JSl[0],a=!1):(n=r.match(/v/)?B(n,1):B(n),t=!0)),r.match(/a/)&&(r.match(/[^JDS](MA|M)/)?n=e.Ml[1]:r.match(/(JS|JD)/)&&(n=e.JSl[1])),r.match(/3/)&&(r.match(/[^JDS](MA|M)/)?n=e.Ml[2]:r.match(/(JS|JD)/)&&(n=e.JSl[2])),r.match(/2/)&&(r.match(/[^JDS](MA|M)/)?n=e.Ml[3]:r.match(/(JS|JD)/)&&(n=e.JSl[3])),r.match(/1/)&&(r.match(/[^JDS](MA|M)/)?n=e.Ml[4]:r.match(/(JS|JD)/)&&(n=e.JSl[4]));var o=n;return r.match(/o/)&&(t&&r.match(/f/)?n=H(o,1):t?n=H(o):r.match(/f/)&&a?n=G(o,"re","e"):a&&(n=G(o,"er","e"))),r.match(/p/)&&(n=t?$(o):G(o,"er","")),r.match(/[^o]f/)&&(n=t?$(o,1):G(o,"re","")),r.match(/b/)&&(n=n.toString().toLowerCase()),r.match(/c|m/)&&(n=n.toString().toUpperCase()),n}),"function"==typeof t&&(i=t(i,e))}():i=a,i}return e}(),r}return e}()); +Array.prototype.reduce||(Array.prototype.reduce=function(e){"use strict";if(null==this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var r,t=Object(this),n=t.length>>>0,a=0;if(2==arguments.length)r=arguments[1];else{for(;a=n)throw new TypeError("Reduce of empty array with no initial value");r=t[a++]}for(;a=1620&&e2e3&&e<2100&&(r+=.37*(e-2100)))}return r}return e}(),V=function(){function e(e){var r=[-4680.93,-1.55,1999.25,-51.38,-249.67,-39.05,7.12,27.87,5.79,2.45],t=(e-p)/(100*x),n=t,a=23.43929111111111,o=void 0;if(Math.abs(t)<1)for(o=0;o<10;o++)a+=r[o]/3600*n,n*=t;return a}return e}(),q=function(){function e(e){var r=(e-p)/x,t=r*r,n=A(280.46646+36000.76983*r+3032e-7*t),a=A(357.52911+35999.05029*r+-1537e-7*t),o=.016708634+-42037e-9*r+-1.267e-7*t,i=(1.914602+-.004817*r+-14e-6*t)*w(a)+(.019993-101e-6*r)*w(2*a)+289e-6*w(3*a),c=n+i,u=a+i,f=1.000001018*(1-o*o)/(1+o*j(u)),l=125.04-1934.136*r,s=c+-.00569+-.00478*w(l),h=V(e),v=h+.00256*j(l),M=A(I(Math.atan2(j(h)*w(c),j(c)))),m=I(Math.asin(w(h)*w(c))),d=A(I(Math.atan2(j(v)*w(s),j(s)))),g=I(Math.asin(w(v)*w(s)));return[n,a,o,i,c,u,f,s,M,m,d,g]}return e}(),z=function(){function e(e){var r=[],t=(e-2451545)/36525,n=t*t,i=t*n,c=0,u=0;r[0]=D(297.850363+445267.11148*t-.0019142*n+i/189474),r[1]=D(357.52772+35999.05034*t-1603e-7*n-i/3e5),r[2]=D(134.96298+477198.867398*t+.0086972*n+i/56250),r[3]=D(93.27191+483202.017538*t-.0036825*n+i/327270),r[4]=D(125.04452-1934.136261*t+.0020708*n+i/45e4);for(var f=0;f<5;f++)r[f]-=2*Math.PI*Math.floor(r[f]/(2*Math.PI));for(var p=t/10,l=0;l<63;l++){for(var s=0,h=0;h<5;h++)0!==o[5*l+h]&&(s+=o[5*l+h]*r[h]);c+=(a[4*l+0]+a[4*l+1]*p)*Math.sin(s),u+=(a[4*l+2]+a[4*l+3]*p)*Math.cos(s)}return[c/36e6,u/36e6]}return e}(),X=function(){function e(e){var r=(e-p)/(10*x),t=A(280.4664567+360007.6982779*r+.03032028*Math.pow(r,2)+Math.pow(r,3)/49931+-(Math.pow(r,4)/15300)+-(Math.pow(r,5)/2e6)),n=q(e)[10],a=z(e)[0],o=V(e)+z(e)[1],i=t+-.0057183+-n+a*j(o);return i-=20*Math.floor(i/20),i/1440}return e}(),F=function(){function e(e){var r=C(e,2),t=r-L(e)/86400,n=t+X(r),a=.006493055555555557;return n+a}return e}(),N=function(){function e(e){var r=F(e);return Math.floor(r-.5)+.5}return e}(),O=function(){function e(e){var r=e%4===0&&!(e%100===0&&e%400!==0);return r}return e}(),k=function(){function e(e,r,t){var n=O(e)?-1:-2;return f-1+365*(e-1)+Math.floor((e-1)/4)+-Math.floor((e-1)/100)+Math.floor((e-1)/400)+Math.floor((367*r-362)/12+(r<=2?0:n)+t)}return e}(),P=function(){function e(e){var r=Math.floor(e-.5)+.5,t=r-f,n=Math.floor(t/146097),a=y(t,146097),o=Math.floor(a/36524),i=y(a,36524),c=Math.floor(i/1461),u=y(i,1461),p=Math.floor(u/365),l=400*n+100*o+4*c+p,s=O(l)?1:2;4!==o&&4!==p&&l++;var h=r-k(l,1,1),v=re;)r--,t=N(r);for(var a=t-1;!(t<=e&&e=r[o];)a+=o,t-=r[o];return n+a}return e}(),W=function(){function e(e,r,t){var n=new Date(t,r-1,e);return n.setFullYear(t),n}return e}(),R=function(){function e(e){var r=e.charAt(0).toUpperCase()+e.slice(1);return r}return e}(),Y=function(){function e(e){var r=Math.floor(e+.5)+1524,t=Math.floor((r-122.1)/365.25),n=Math.floor(365.25*t),a=Math.floor((r-n)/30.6001),o=Math.floor(a<14?a-1:a-13),i=r-n-Math.floor(30.6001*a),c=Math.floor(o>2?t-4716:t-4715);return c<1&&c--,[c,o,i]}return e}(),Z=function(){function e(e){var r=Math.floor(e)+.5,t=U(r),n=t[0],a=t[1],o=Math.floor((r-a)/30)+1,i=(r-a)%30,c=Math.floor(i/10)+1;return i=i%10+1,[n,o,c,i]}return e}(),B=function(){function e(e,r){var t=void 0,n=void 0,a=void 0,o=void 0,i=void 0,u=void 0,f=void 0,p=void 0,l=void 0;if("number"==typeof e&&e>-1e4&&e<1e4){var s=S,h=c,v=Math.abs(e),M=r?" ":"-",m=parseInt(v/1e3,10),d=parseInt(v%1e3/100,10),g=parseInt(v%100/10,10),J=parseInt(v%10,10);t=1===m?"mille":m>1?""+s[m]+M+"mille":"",n=m>0?M:"",a=1===d?n+"cent":d>1&&0===g&&0===J?""+n+s[d]+M+"cents":d>1?""+n+s[d]+M+"cent":"",o=m+d>0&&g+J>0?M:"",g>0?(i=h[g],u="-"):(i="",u=""),f=v>0?u+s[J]:"zéro",(10*g+J)%10===0&&(f=""),1!==g&&7!==g&&9!==g||0!==J||(i=1===g?"dix":h[g]+"-dix",f=1===g?"":s[J]),(1===g||7===g||9===g)&&J>=1&&(i=1===g?"":h[g],1===g&&(u=""),f=7===g&&1===J?M+"et"+M+s[10+J]:u+s[10+J]),g>=2&&g<=6&&1===J&&(f=M+"et"+M+s[J]),8===g&&0===J&&(i=h[g]+"s",f=""),p=o+i+f;var x=e<0?"Moins ":"";l=v>0?R(x+t+a+p):"Zéro"}else l="";return l}return e}(),G=function(){function e(e,r,t){var n=1===e||"1er"===e||"1re"===e?"1"+r:e+t;return n}return e}(),H=function(){function e(e,r){var t=e.toString(),n=void 0,a=r?"première":"premier";switch(t.slice(-1)){case"o":case"t":case"x":n=t+"ième";break;case"q":n=t+"uième";break;case"f":n=t.slice(0,t.length-1)+"vième";break;case"e":n=t.slice(0,t.length-1)+"ième";break;case"s":n="ts"===t.slice(-2)?t.slice(0,t.length-1)+"ième":t+"ième";break;case"n":n="et-un"===t.slice(-5)||"et un"===t.slice(-5)?t+"ième":"Un"===t?R(a):a;break;default:n=t}return n}return e}(),K=function(){function e(e,r,t,n,a,o){var i=W(e,r,t),c=W(n,a,o),u=c>i?i:c,f=c>i?c:i;return Math.ceil((f-u)/864e5)+1}return e}(),Q=function(){function e(e){var r=e<10&&e>0?"0"+e:e;return r}return e}(),$=function(){function e(e,r){var t=e.toString(),n=void 0,a=r?"première":"premier";return n="Un"===t?R(a):"un"===t?a:t}return e}(),_=function(){function e(e,r,t){var n=r.reduce(function(e,r){var n=e.replace(new RegExp(r.regexp,t),r.replace);return n},e);return n}return e}(),ee=function(){function e(e,r,t,a){for(var o=h+n*(e-1-1),i=[e-1,0];i[0]=0;n--)r[a[n]]parseInt(c,10)?parseInt(c,10)+i+1:parseInt(c,10)+i;return u}return e}(),ie=function(){function e(e,r){var t="/"===e[0]?"1"+e:e,n=ae(t,g),a=[];if(n[2]&&n[0]<32&&0!==E(n[0])&&n[1]<13&&""!==n[1]&&0!==E(n[1])){if(a[4]=k(parseInt(n[2],10),E(n[1]),E(n[0])),r===!0&&a[4]=h&&a[4]<=M||a[4]>=l&&a[4]<=v||r===!1){var i=Z(a[4]);a=a.concat([i[3],i[2],10*(i[2]-1)+i[3],i[1],i[0]])}}return a}return e}(),ce=function(){function e(e,r){var t=e.replace(/\W?an\s-?([-MDCLXVI]+)\W?/gi,function(e,r){var t=ne(r);return e.match(/-/)?" -"+t:" "+t}),n=[];if(t=ae(t,J),t[2]&&t[0]<30&&0!==E(t[0])&&t[1]<14&&0!==E(t[1])&&(n[4]=ee(parseInt(t[2],10),parseInt(t[1],10),re(t[0]),te(t[0])),n[4]>=h&&n[4]<=M||n[4]>=l&&n[4]<=v||r===!1)){var a=P(n[4]),o=Y(n[4]);n[0]=a[2],n[1]=a[1],n[2]=a[0],n[3]=W(n[0],n[1],n[2]),n[5]=o[2],n[6]=o[1],n[7]=o[0],n[8]=W(n[5],n[6],n[7]),n[9]=te(t[0]),n[10]=re(t[0]),n[11]=E(t[0]),n[12]=parseInt(t[1],10),n[13]=parseInt(t[2],10)}return n}return e}();return r.Jour=function(){function r(t,n){e(this,r);var a=[];this.variables=this.variables||{},this.limites=n!==!1,a=t.match(/\W?an\s-?([-MDCLXVI]+|\d+)\W?/gi)?ce(t,this.limites):ie(t,this.limites),this.variables={gregorien:{jm:a[0],m:a[1],a:a[2],od:a[3]},julien:{jj:a[4],jm:a[5],m:a[6],a:a[7],od:a[8]},republicain:{jd:a[9],d:a[10],jm:a[11],m:a[12],a:a[13]},limites:this.limites}}return r}(),r.Jour.prototype.gregorien=function(){function e(e,r,t){var n=e||"%Jp %Mlb %A",a=r||"Pas de correspondances.",o=this.variables.gregorien,i=void 0;return o.od?!function(){var e={A:o.a,D:oe(o.jm,o.m,o.a,1),JA:K(1,1,o.a,o.jm,o.m,o.a),J:o.jm,JS:o.od.getDay(),JSl:m[o.od.getDay()],M:o.m,Ml:d[o.m-1],S:oe(o.jm,o.m,o.a,0)};i=n.replace(/%[ADJMNSabcflmoprvz123]+/g,function(r){var t=void 0,n=r,a=!0;r.match(/A/)&&(n=r.match(/AN/)?e.A:e.A),r.match(/J/)&&(n=r.match(/JA/)?e.JA:e.J),r.match(/M/)&&(n=r.match(/MA/)?e.M:r.match(/JM/)?e.J:e.M),r.match(/D/)&&(n=r.match(/DA/)?e.S:r.match(/DM/)?e.D:r.match(/JD/)?e.JS:e.D),r.match(/S/)&&(n=r.match(/SA/)?e.S:r.match(/SM/)?e.D:r.match(/JS/)?e.JS:e.S),r.match(/r/)&&(n=T(n)),r.match(/z/)&&(n=Q(n)),r.match(/l|v/)&&(r.match(/[^JDS](MA|M)/)?(n=e.Ml[0],a=!1):r.match(/(JS|JD)/)?(n=e.JSl[0],a=!1):(n=r.match(/v/)?B(n,1):B(n),t=!0)),r.match(/a/)&&(r.match(/[^JDS](MA|M)/)?n=e.Ml[1]:r.match(/(JS|JD)/)&&(n=e.JSl[1])),r.match(/3/)&&(r.match(/[^JDS](MA|M)/)?n=e.Ml[2]:r.match(/(JS|JD)/)&&(n=e.JSl[2])),r.match(/2/)&&(r.match(/[^JDS](MA|M)/)?n=e.Ml[3]:r.match(/(JS|JD)/)&&(n=e.JSl[3])),r.match(/1/)&&(r.match(/[^JDS](MA|M)/)?n=e.Ml[4]:r.match(/(JS|JD)/)&&(n=e.JSl[4]));var o=n;return r.match(/o/)&&(t&&r.match(/f/)?n=H(o,1):t?n=H(o):r.match(/f/)&&a?n=G(o,"re","e"):a&&(n=G(o,"er","e"))),r.match(/p/)&&(n=t?$(o):G(o,"er","")),r.match(/[^o]f/)&&(n=t?$(o,1):G(o,"re","")),r.match(/b/)&&(n=n.toString().toLowerCase()),r.match(/c|m/)&&(n=n.toString().toUpperCase()),n}),"function"==typeof t&&(i=t(i,e))}():i=a,i}return e}(),r}return e}()); //# sourceMappingURL=acte.min.js.map diff --git a/dist/acte.min.js.map b/dist/acte.min.js.map index 4c92e43..b78235c 100644 --- a/dist/acte.min.js.map +++ b/dist/acte.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["acte.min.js"],"names":["Array","prototype","reduce","callback","this","TypeError","value","t","Object","len","length","k","arguments","universalModuleDefinition","root","factory","tempRoot","exports","module","define","amd","acte","umdCallback","_classCallCheck","instance","Constructor","jde0Tab2000","anneeTropique","argNutCoeff","argNutMult","delta","dixainesEnLettres","jde0Tab1000","jjAn1Gregorien","jjAn2000Gregorien","jjDebutCommuneDeParis","jjDebutGregorien","jjDebutRepublicain","jjFinCommuneDeParis","jjFinRepublicain","jourGregorien","moisGregorien","regexpGregorien","regexp","replace","regexpRepublicain","siecleJulien","termesPerEquinoxes","unitesEnLettres","degresVersRadians","d","result","Math","PI","normaliserDegres","a","floor","radiansVersDegres","r","reste","b","sinus","sin","cosinus","cos","equinoxe","an","item","i","j","Jde0tab","S","Y","Jde0","pow","T","W","deltaL","deltaT","dt","maxindex","obliquiteEcliptique","jj","oTerms","u","v","eps","abs","positionSoleil","t2","l0","M","e","C","sunLong","sunAnomaly","sunR","Omega","Lambda","epsilon0","epsilon","Alpha","atan2","Delta","asin","AlphaApp","DeltaApp","nutation","ta","t3","dp","de","to10","_i","ang","equationDuTemps","tau","alpha","deltaPsi","E","fractionEquinoxe","equJED","equJD","equAPP","dtParis","equinoxeAParis","ep","gregorienBissextile","gregorienVersJj","mois","jour","anneeBissextile","jjVersGregorien","wjd","depoch","quadricent","dqc","cent","dcent","quad","dquad","yindex","yearday","leapadj","absInt","num","parseInt","anRepublicain","guess","lasteq","nexteq","adr","round","arabeVersRomain","arabe","lookup","CM","D","CD","XC","L","XL","X","IX","V","IV","I","tempArabe","sign","romain","hasOwnProperty","dateValide","resultat","Date","setFullYear","initialeEnCapitale","str","charAt","toUpperCase","slice","jjVersJulien","c","jjVersRepublicain","tempJj","equinox","decade","nombreEnLettres","n","mill","sepcen","centl","sepdix","dixl","sepunit","unitl","dizunit","res","splus","mil","dix","unit","avjc","nombreOrdinal","prem","exp","ordinauxEnLettres","saisie","genre","toString","periodeEnJours","j1","m1","a1","j2","m2","a2","date1","date2","debut","fin","ceil","prefixeZero","premierOrdinalEnLettres","remplacements","texte","regex","options","data","RegExp","republicainVersJj","rjmcVersRdc","rjmc","rjmcVersRjdc","romainVersArabe","tempRomain","saisieValide","tempSaisie","split","match","semaineComplete","m","x","jourSemaine","getDay","nombreSemaines","semainesValides","tabGregorien","limites","iesaisie","saisieGregorien","tab","dateJulienne","dateRepublicaine","concat","tabRepublicain","saisieRepublicain","p1","rva","dateGregorienne","Jour","variables","gregorien","jm","od","julien","republicain","jd","format","erreur","rappel","frmt","err","tvg","obj","A","JA","J","JS","JSl","Ml","ordinaux","chiffres","lettres","toLowerCase"],"mappings":"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","file":"acte.min.js","sourcesContent":["/* POLYFILL: Internet Explorer 8 => Array.prototype.reduce */\n/* istanbul ignore if */\nif (!Array.prototype.reduce) {\n // jscs:disable\n Array.prototype.reduce = function (callback /*, initialValue*/ ) {\n 'use strict';\n\n if (this == null) {\n throw new TypeError(\n 'Array.prototype.reduce called on null or undefined');\n }\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n var t = Object(this),\n len = t.length >>> 0,\n k = 0,\n value;\n if (arguments.length == 2) {\n value = arguments[1];\n } else {\n while (k < len && !(k in t)) {\n k++;\n }\n if (k >= len) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n value = t[k++];\n }\n for (; k < len; k++) {\n if (k in t) {\n value = callback(value, t[k], k, t);\n }\n }\n return value;\n };\n // jscs:enable\n}\n\n/**\n * acte - Librairie Javascript pour manipuler des données généalogiques.\n * @copyright 2015-Present, Gilles Toubiana\n * @namespace acte\n * @version 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @license MIT\n */\n\n(function () {\n function universalModuleDefinition(root, factory) {\n var tempRoot = root;\n\n /* istanbul ignore next */\n if (typeof exports === 'object' && typeof module === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n exports.acte = factory();\n } else {\n tempRoot.acte = factory();\n }\n }\n\n return universalModuleDefinition;\n})()(this, function () {\n function umdCallback() {\n 'use strict';\n\n /** @namespace */\n /* eslint-disable no-use-before-define */\n\n var acte = acte || {};\n /* eslint-enable no-use-before-define */\n /* istanbul ignore next */\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n /**\n * Jours juliens des équinoxes de l'an 1000 à l'an 2000.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|JDE0tab2000}\n * @constant {Array}\n */\n var jde0Tab2000 = [\n [2451623.80984, 365242.37404, 0.05169, -0.00411, -0.00057],\n [2451716.56767, 365241.62603, 0.00325, 0.00888, -0.00030],\n [2451810.21715, 365242.01767, -0.11575, 0.00337, 0.00078],\n [2451900.05952, 365242.74049, -0.06223, -0.00823, 0.00032]\n ];\n\n /**\n * Nombre de jours, sur Terre, pour que le Soleil retourne à la même\n * position\n * dans le cycle des saisons.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|TropicalYear}\n * @constant {Number}\n */\n var anneeTropique = 365.24219878;\n\n /**\n * Coefficient des sinus et cosinus de l'argument pour la nutation.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|nutArgCoeff}\n * @constant {Array}\n */\n var argNutCoeff = [-171996, -1742, 92095, 89, -13187, -16, 5736, -31, -\n 2274, -2, 977, -5, 2062, 2, -895, 5, 1426, -34, 54, -1, 712, 1, -7, 0, -\n 517, 12, 224, -6, -386, -4, 200, 0, -301, 0, 129, -1, 217, -5, -95, 3, -\n 158, 0, 0, 0, 129, 1, -70, 0, 123, 0, -53, 0, 63, 0, 0, 0, 63, 1, -33,\n 0, -59, 0, 26, 0, -58, -1, 32, 0, -51, 0, 27, 0, 48, 0, 0, 0, 46, 0, -\n 24, 0, -38, 0, 16, 0, -31, 0, 13, 0, 29, 0, 0, 0, 29, 0, -12, 0, 26,\n 0, 0, 0, -22, 0, 0, 0, 21, 0, -10, 0, 17, -1, 0, 0, 16, 0, -8, 0, -16,\n 1, 7, 0, -15, 0, 9, 0, -13, 0, 7, 0, -12, 0, 6, 0, 11, 0, 0, 0, -10,\n 0, 5, 0, -8, 0, 3, 0, 7, 0, -3, 0, -7, 0, 0, 0, -7, 0, 3, 0, -7, 0, 3,\n 0, 6, 0, 0, 0, 6, 0, -3, 0, 6, 0, -3, 0, -6, 0, 3, 0, -6, 0, 3, 0, 5,\n 0, 0, 0, -5, 0, 3, 0, -5, 0, 3, 0, -5, 0, 3, 0, 4, 0, 0, 0, 4, 0, 0,\n 0, 4, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, 0, 3, 0, 0, 0, -3,\n 0, 0, 0, -3, 0, 0, 0, -3, 0, 0, 0, -3, 0, 0, 0, -3, 0, 0, 0, -3, 0, 0,\n 0, -3, 0, 0, 0\n ];\n\n /**\n * Termes périodiques pour la nutation en longitude et obliquité.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|nutArgMult}\n * @constant {Array}\n */\n var argNutMult = [0, 0, 0, 0, 1, -2, 0, 0, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0,\n 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -2, 1, 0, 2, 2, 0, 0, 0, 2, 1, 0,\n 0, 1, 2, 2, -2, -1, 0, 2, 2, -2, 0, 1, 0, 0, -2, 0, 0, 2, 1, 0, 0, -1,\n 2, 2, 2, 0, 0, 0, 0, 0, 0, 1, 0, 1, 2, 0, -1, 2, 2, 0, 0, -1, 0, 1, 0,\n 0, 1, 2, 1, -2, 0, 2, 0, 0, 0, 0, -2, 2, 1, 2, 0, 0, 2, 2, 0, 0, 2, 2,\n 2, 0, 0, 2, 0, 0, -2, 0, 1, 2, 2, 0, 0, 0, 2, 0, -2, 0, 0, 2, 0, 0, 0, -\n 1, 2, 1, 0, 2, 0, 0, 0, 2, 0, -1, 0, 1, -2, 2, 0, 2, 2, 0, 1, 0, 0, 1, -\n 2, 0, 1, 0, 1, 0, -1, 0, 0, 1, 0, 0, 2, -2, 0, 2, 0, -1, 2, 1, 2, 0,\n 1, 2, 2, 0, 1, 0, 2, 2, -2, 1, 1, 0, 0, 0, -1, 0, 2, 2, 2, 0, 0, 2, 1,\n 2, 0, 1, 0, 0, -2, 0, 2, 2, 2, -2, 0, 1, 2, 1, 2, 0, -2, 0, 1, 2, 0,\n 0, 0, 1, 0, -1, 1, 0, 0, -2, -1, 0, 2, 1, -2, 0, 0, 0, 1, 0, 0, 2, 2,\n 1, -2, 0, 2, 0, 1, -2, 1, 0, 2, 1, 0, 0, 1, -2, 0, -1, 0, 1, 0, 0, -2,\n 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, -1, -1, 1, 0, 0, 0, 1, 1, 0,\n 0, 0, -1, 1, 2, 2, 2, -1, -1, 2, 2, 0, 0, -2, 2, 2, 0, 0, 3, 2, 2, 2, -\n 1, 0, 2, 2\n ];\n\n /**\n * Tableau des Delta T différence entre Temps universel et temps terrestre\n * en secondes, observées pour les années paires de 1620 à 2016.\n * @access private\n * @author F.R. Stephenson & L.V. Morrison & IERS & Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://www.staff.science.uu.nl/~gent0113/deltat/deltat_modern.htm|Valeurs} |\n * {@link http://maia.usno.navy.mil/ser7/deltat.data|IERS} |\n * {@link http://maia.usno.navy.mil/ser7/deltat.preds|Predictions}\n * @constant {Array}\n */\n var delta = [124, 115, 106, 98, 91, 85, 79, 74, 70, 65, 62, 58, 55, 53,\n 50, 48, 46, 44, 42, 40, 37, 35, 33, 31, 28, 26, 24, 22, 20, 18, 16,\n 14, 13, 12, 11, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11,\n 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14,\n 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17,\n 17, 17, 16, 16, 15, 14, 13.7, 13.1, 12.7, 12.5, 12.5, 12.5, 12.5,\n 12.5, 12.5, 12.3, 12, 11.4, 10.6, 9.6, 8.6, 7.5, 6.6, 6, 5.7, 5.6,\n 5.7, 5.9, 6.2, 6.5, 6.8, 7.1, 7.3, 7.5, 7.7, 7.8, 7.88, 7.54, 6.4,\n 5.41, 2.92, 1.61, -1.02, -2.69, -3.64, -4.71, -5.4, -5.2, -5.46, -\n 5.63, -5.8, -5.87, -6.19, -6.44, -6.09, -4.66, -2.72, -0.02, 2.64,\n 5.37, 7.75, 10.46, 13.36, 16.01, 18.24, 20.25, 21.16, 22.41, 23.49,\n 23.86, 24.34, 24.02, 23.87, 23.86, 23.73, 23.96, 24.33, 25.3, 26.24,\n 27.28, 28.25, 29.15, 29.97, 30.72, 31.35, 32.18, 33.15, 34, 35.03,\n 36.54, 38.29, 40.18, 42.23, 44.94, 46.94, 49.03, 50.93, 52.53, 54.05,\n 55.08, 56.05, 57.18, 58.69, 60.35, 61.95, 63.23, 63.95, 64.39, 64.63,\n 64.97, 65.6, 66.2, 66.74, 67.45, 68.26\n ];\n\n /**\n * Dixaines en toutes lettres.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var dixainesEnLettres = ['', 'dix', 'vingt', 'trente', 'quarante',\n 'cinquante', 'soixante', 'soixante', 'quatre-vingt', 'quatre-vingt'\n ];\n\n /**\n * Jours juliens des équinoxes avant l'an 1000.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|JDE0tab1000}\n * @constant {Array}\n */\n var jde0Tab1000 = [\n [1721139.29189, 365242.13740, 0.06134, 0.00111, -0.00071],\n [1721233.25401, 365241.72562, -0.05323, 0.00907, 0.00025],\n [1721325.70455, 365242.49558, -0.11677, -0.00297, 0.00074],\n [1721414.39987, 365242.88257, -0.00769, -0.00933, -0.00006]\n ];\n\n /**\n * Nombre de jours juliens correspondants à l'an 1 gregorien.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|GREGORIAN_EPOCH}\n * @constant {Number}\n * @example\n * jjVersGregorien(1721425.5); // [1, 1, 1]\n * jjVersGregorien(jjAn1Gregorien); // [1, 1, 1]\n */\n var jjAn1Gregorien = 1721425.5;\n\n /**\n * Nombre de jours juliens correspondants à l'an 2000 grégorien.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|J2000}\n * @constant {Number}\n * @example\n * jjVersGregorien(2451545.0); // [2000, 1, 1]\n * jjVersGregorien(jjAn2000Gregorien); // [2000, 1, 1]\n */\n var jjAn2000Gregorien = 2451545.0;\n\n /**\n * Nombre de jours juliens correspondants à l'adoption du calendrier\n * républicain dans le journal officiel lors de la Commune de Paris\n * en 1871.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Number}\n * @example\n * jjVersGregorien(2404504.5); // [1871, 3, 18]\n * jjVersGregorien(jjDebutCommuneDeParis); // [1871, 3, 18]\n * jjVersRepublicain(2404504.5); // [79, 6, 3, 7]\n * jjVersRepublicain(jjDebutCommuneDeParis); // [79, 6, 3, 7]\n */\n var jjDebutCommuneDeParis = 2404504.5;\n\n /**\n * Nombre de jours juliens correspondants à l'adoption du calendrier\n * grégorien.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte.js|Projet sur GitHub}\n * @constant {Number}\n * @example\n * jjVersGregorien(2299160.5); // [1582, 10, 15]\n * jjVersGregorien(jjDebutGregorien); // [1582, 10, 15]\n * jjVersJulien(2299160.5); // [1582, 10, 5]\n * jjVersJulien(jjDebutGregorien); // [1582, 10, 5]\n */\n var jjDebutGregorien = 2299160.5;\n\n /**\n * Nombre de jours juliens correspondants à l'an 1 républicain.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link fourmilab.ch/documents/calendar/|FRENCH_REVOLUTIONARY_EPOCH}\n * @constant {Number}\n * @example\n * jjVersGregorien(2375839.5); // [1792, 9, 22]\n * jjVersGregorien(jjDebutRepublicain); // [1792, 9, 22]\n * jjVersRepublicain(2375839.5); // [1, 1, 1, 1]\n * jjVersRepublicain(jjDebutRepublicain); // [1, 1, 1, 1]\n */\n var jjDebutRepublicain = 2375839.5;\n\n /**\n * Nombre de jours juliens correspondants à l'abrogation du calendrier\n * républicain dans le journal officiel lors de la Commune de Paris\n * en 1871.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Number}\n * @example\n * jjVersGregorien(2404575.5); // [1871, 5, 28]\n * jjVersGregorien(jjFinCommuneDeParis); // [1871, 5, 28]\n * jjVersRepublicain(2404575.5); // [79, 9, 1, 8]\n * jjVersRepublicain(jjFinCommuneDeParis); // [79, 9, 1, 8]\n */\n var jjFinCommuneDeParis = 2404575.5;\n\n /**\n * Nombre de jours juliens correspondants à l'abrogation du calendrier\n * républicain.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Number}\n * @example\n * jjVersGregorien(2380686.5); // [1805, 12, 31]\n * jjVersGregorien(jjFinRepublicain); // [1805, 12, 31]\n * jjVersRepublicain(2380686.5); // [14, 4, 1, 10]\n * jjVersRepublicain(jjFinRepublicain); // [14, 4, 1, 10]\n */\n var jjFinRepublicain = 2380686.5;\n\n /**\n * Nom des Jours Grégoriens et abbréviations courantes,\n * sur 1, 2 et 3 caractères.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var jourGregorien = [\n ['Dimanche', 'Dim', 'Dim', 'Di', 'D'],\n ['Lundi', 'Lundi', 'Lun', 'Lu', 'L'],\n ['Mardi', 'Mardi', 'Mar', 'Ma', 'M'],\n ['Mercredi', 'Mercr', 'Mer', 'Me', 'M'],\n ['Jeudi', 'Jeudi', 'Jeu', 'Je', 'J'],\n ['Vendredi', 'Vendr', 'Ven', 'Ve', 'V'],\n ['Samedi', 'Sam', 'Sam', 'Sa', 'S']\n ];\n\n /**\n * Nom des Mois Grégoriens et abbréviations courantes,\n * sur 1, 2 et 3 caractères.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var moisGregorien = [\n ['Janvier', 'Janv', 'Jan', 'Jr', 'J'],\n ['Février', 'Févr', 'Fév', 'Fr', 'F'],\n ['Mars', 'Mars', 'Mar', 'Ms', 'M'],\n ['Avril', 'Avr', 'Avr', 'Al', 'A'],\n ['Mai', 'Mai', 'Mai', 'Mi', 'M'],\n ['Juin', 'Juin', 'Jun', 'Jn', 'J'],\n ['Juillet', 'Juill', 'Jul', 'Jt', 'J'],\n ['Août', 'Août', 'Aoû', 'At', 'A'],\n ['Septembre', 'Sept', 'Sep', 'Se', 'S'],\n ['Octobre', 'Oct', 'Oct', 'Oe', 'O'],\n ['Novembre', 'Nov', 'Nov', 'Ne', 'N'],\n ['Décembre', 'Déc', 'Déc', 'De', 'D']\n ];\n\n /**\n * Expressions régulières pour convertir les mois gregoriens.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var regexpGregorien = [{\n regexp: 'jan(v)?(\\\\.)?(ier)?',\n replace: '/1/'\n }, {\n regexp: 'Jer',\n replace: '/1/'\n }, {\n regexp: 'f(é|e)v(r)?(\\\\.)?(ier)?',\n replace: '/2/'\n }, {\n regexp: 'Fer',\n replace: '/2/'\n }, {\n regexp: 'mar(s|\\\\.)?',\n replace: '/3/'\n }, {\n regexp: 'avr(il|\\\\.)?',\n replace: '/4/'\n }, {\n regexp: 'mai',\n replace: '/5/'\n }, {\n regexp: 'ju(i)?n',\n replace: '/6/'\n }, {\n regexp: 'ju(i)?l(\\\\.|l)?(\\\\.)?(et)?',\n replace: '/7/'\n }, {\n regexp: 'Jet',\n replace: '/7/'\n }, {\n regexp: 'ao(u|û)(t|\\\\.)?',\n replace: '/8/'\n }, {\n regexp: 'sep(t)?(\\\\.)?(embre)?',\n replace: '/9/'\n }, {\n regexp: '7bre',\n replace: '/9/'\n }, {\n regexp: 'oct(obre|\\\\.)?',\n replace: '/10/'\n }, {\n regexp: '8bre',\n replace: '/10/'\n }, {\n regexp: 'nov(embre|\\\\.)?',\n replace: '/11/'\n }, {\n regexp: '9bre',\n replace: '/11/'\n }, {\n regexp: 'd(é|e)c(embre|\\\\.)?',\n replace: '/12/'\n }, {\n regexp: 'Xbre',\n replace: '/12/'\n }, {\n regexp: '10bre',\n replace: '/12/'\n }, {\n regexp: '[^-()\\\\d/*+.]',\n replace: ''\n }];\n\n /**\n * Expressions régulières pour convertir les mois républicains.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var regexpRepublicain = [{\n regexp: 'vend(é|e)miaire',\n replace: '/1/'\n }, {\n regexp: 'brumaire',\n replace: '/2/'\n }, {\n regexp: 'frimaire',\n replace: '/3/'\n }, {\n regexp: 'niv(ô|o)se',\n replace: '/4/'\n }, {\n regexp: 'pluvi(ô|o)se',\n replace: '/5/'\n }, {\n regexp: 'vent(ô|o)se',\n replace: '/6/'\n }, {\n regexp: 'germinal',\n replace: '/7/'\n }, {\n regexp: 'flor(é|e)al',\n replace: '/8/'\n }, {\n regexp: 'prairial',\n replace: '/9/'\n }, {\n regexp: 'messidor',\n replace: '/10/'\n }, {\n regexp: 'thermidor',\n replace: '/11/'\n }, {\n regexp: 'fructidor',\n replace: '/12/'\n }, {\n regexp: 'san(s-)?culottide(s)?',\n replace: '/13/'\n }, {\n regexp: 'jour(s)?\\\\scompl(é|e)mentaire(s)?',\n replace: '/13/'\n }, {\n regexp: 'd(é|e)cade\\\\s(\\\\d){1,2}',\n replace: ''\n }, {\n regexp: '[^-()\\\\d/*+.]',\n replace: ''\n }];\n\n /**\n * Nombre de jours dans un siècle julien.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|JulianCentury}\n * @constant {Number}\n */\n var siecleJulien = 36525.0;\n\n /**\n * Termes périodiques pour obtenir des temps réels.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|EquinoxpTerms}\n * @constant {Array}\n */\n var termesPerEquinoxes = [485, 324.96, 1934.136, 203, 337.23, 32964.467,\n 199, 342.08, 20.186, 182, 27.85, 445267.112, 156, 73.14, 45036.886,\n 136, 171.52, 22518.443, 77, 222.54, 65928.934, 74, 296.72, 3034.906,\n 70, 243.58, 9037.513, 58, 119.81, 33718.147, 52, 297.17, 150.678, 50,\n 21.02, 2281.226, 45, 247.54, 29929.562, 44, 325.15, 31555.956, 29,\n 60.93, 4443.417, 18, 155.12, 67555.328, 17, 288.79, 4562.452, 16,\n 198.04, 62894.029, 14, 199.76, 31436.921, 12, 95.39, 14577.848, 12,\n 287.11, 31931.756, 12, 320.81, 34777.259, 9, 227.73, 1222.114, 8,\n 15.45, 16859.074\n ];\n\n /**\n * Unités en toutes lettres.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var unitesEnLettres = ['', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six',\n 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze',\n 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf'\n ];\n\n /**\n * Pour convertir des degrés en radians.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|dtr}\n * @param {Number} d - Angle en degrés\n * @return {Number} Angle en radians\n * @example\n * degresVersRadians(90); // 1.5707963267948966\n */\n var degresVersRadians = function () {\n function degresVersRadians(d) {\n var result = d * Math.PI / 180.0;\n\n return result;\n }\n\n return degresVersRadians;\n }();\n\n /**\n * Pour normaliser un angle entre 0 et 360 degrés.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|fixangle}\n * @param {Number} a - Angle en degrés\n * @return {Number} Angle entre 0 et 360 degrés\n * @example\n * normaliserDegres(375); // 15\n */\n var normaliserDegres = function () {\n function normaliserDegres(a) {\n var result = a - 360.0 * Math.floor(a / 360.0);\n\n return result;\n }\n\n return normaliserDegres;\n }();\n\n /**\n * Pour convertir des radians en degrés.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|rtd}\n * @param {Number} r - Angle en radians\n * @return {Number} Angle en degrés\n * @example\n * radiansVersDegres(1.5707963267948966); // 90\n */\n var radiansVersDegres = function () {\n function radiansVersDegres(r) {\n var result = r * 180.0 / Math.PI;\n\n return result;\n }\n\n return radiansVersDegres;\n }();\n\n /**\n * Pour calculer les restes avec des nombres décimaux.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|mod}\n * @param {Number} a - Nombre à diviser\n * @param {Number} b - Diviseur\n * @return {Number} Reste de a par b\n * @example\n * reste(3,2); // 1\n */\n var reste = function () {\n function reste(a, b) {\n var result = a - b * Math.floor(a / b);\n\n return result;\n }\n\n return reste;\n }();\n\n /**\n * Pour calculer le sinus d'un angle en degrés.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|dsin}\n * @param {Number} d - Angle en degrés\n * @return {Number} Sinus de l'angle en degrés\n * @example\n * sinus(90); // 1\n */\n var sinus = function () {\n function sinus(d) {\n var result = Math.sin(degresVersRadians(d));\n\n return result;\n }\n\n return sinus;\n }();\n\n /**\n * Pour calculer le cosinus d'un angle en degrés.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|dcos}\n * @param {Number} d - Angle en degrés\n * @return {Number} Cosinus de l'angle en degrés\n * @example\n * cosinus(0); // 1\n */\n var cosinus = function () {\n function cosinus(d) {\n var result = Math.cos(degresVersRadians(d));\n\n return result;\n }\n\n return cosinus;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens d'une equinoxe ou d'un solstice.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|equinox}\n * @param {Number} an - Année\n * @param {Number} item - L'item à calculer :\n * 0 = Equinoxe de Mars,\n * 1 = Solstice de Juin,\n * 2 = Equinoxe de Septembre,\n * 3 = Solstice de Décembre\n * @return {Number} Le nombre de jours juliens pour l'equinoxe ou solstice\n * @example\n * equinoxe(2015,0); // 2457102.4488504543\n */\n var equinoxe = function () {\n function equinoxe(an, item) {\n var i = void 0;\n var j = void 0;\n var Jde0tab = void 0;\n var S = void 0;\n var Y = void 0;\n\n if (an < 1000) {\n Jde0tab = jde0Tab1000;\n Y = an / 1000;\n } else {\n Jde0tab = jde0Tab2000;\n Y = (an - 2000) / 1000;\n }\n var Jde0 = Jde0tab[item][0] + Jde0tab[item][1] * Y + Jde0tab[item][\n 2\n ] * Math.pow(Y, 2) + Jde0tab[item][3] * Math.pow(Y, 3) + Jde0tab[\n item][4] * Math.pow(Y, 4);\n var T = (Jde0 - 2451545.0) / 36525;\n var W = 35999.373 * T - 2.47;\n var deltaL = 1 + 0.0334 * cosinus(W) + 0.0007 * cosinus(2 * W);\n\n S = 0;\n for (i = j = 0; i < 24; i++) {\n S += termesPerEquinoxes[j] * cosinus(termesPerEquinoxes[j + 1] +\n termesPerEquinoxes[j + 2] * T);\n j += 3;\n }\n\n return Jde0 + S * 0.00001 / deltaL;\n }\n\n return equinoxe;\n }();\n\n /**\n * Pour calculer la différence entre temps terrestre et temps universel,\n * en secondes.\n * @access private\n * @author John Walker & Gilles Toubiana\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|deltat} |\n * {@link http://eclipse.gsfc.nasa.gov/SEcat5/deltatpoly.html|Expressions} |\n * {@link http://www.projectpluto.com/dt.htm|Formules}\n * @param {Number} an - Année\n * @return {Number} Différence entre temps terrestre et temps universel,\n * en secondes\n * @example\n * deltaT(2015); // 67.855\n */\n\n var deltaT = function () {\n function deltaT(an) {\n var dt = void 0;\n var maxindex = 1618 + delta.length * 2;\n\n if (an >= 1620 && an < maxindex) {\n var i = (an - 1620) / 2;\n\n dt = (an - 1620) % 2 ? (delta[i - 0.5] + delta[i + 0.5]) / 2 :\n delta[i];\n } else {\n var t = (an - 2000) / 100;\n\n if (an === maxindex) {\n dt = delta[delta.length - 1];\n } else if (an < 948) {\n dt = 2177 + 497 * t + 44.1 * t * t;\n } else {\n dt = 102 + 102 * t + 25.3 * t * t;\n if (an > 2000 && an < 2100) {\n dt += 0.37 * (an - 2100);\n }\n }\n }\n\n return dt;\n }\n\n return deltaT;\n }();\n\n /**\n * Pour calculer l'obliquité de l'écliptique pour un nombre de jours juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|obliqeq}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Number} Obliquité de l'écliptique\n * @example\n * obliquiteEcliptique(2457333.5); // 23.437230456425635\n */\n var obliquiteEcliptique = function () {\n function obliquiteEcliptique(jj) {\n var oTerms = [-4680.93, -1.55, 1999.25, -51.38, -249.67, -39.05,\n 7.12, 27.87, 5.79, 2.45\n ];\n var u = (jj - jjAn2000Gregorien) / (siecleJulien * 100);\n var v = u;\n var eps = 23 + 26 / 60.0 + 21.448 / 3600.0;\n var i = void 0;\n\n if (Math.abs(u) < 1.0) {\n for (i = 0; i < 10; i++) {\n eps += oTerms[i] / 3600.0 * v;\n v *= u;\n }\n }\n\n return eps;\n }\n\n return obliquiteEcliptique;\n }();\n\n /**\n * Pour calculer la position du soleil.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|sunpos}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} Position du soleil : Angles en degrés.\n * [0] Longitude moyenne géométrique du Soleil,\n * [1] Anomalie moyenne du Soleil,\n * [2] Excentricité de l'orbite de la Terre,\n * [3] Équation du centre du Soleil,\n * [4] Longitude réelle du Soleil,\n * [5] Anomalie réelle du Soleil,\n * [6] Rayon vecteur du Soleil,\n * [7] Longitude apparente du Soleil pour une equinoxe,\n * [8] Ascension réelle du Soleil,\n * [9] Déclinaison réelle du Soleil,\n * [10] Ascension apparente du Soleil,\n * [11] Déclinaison apparente du Soleil\n * @example\n * positionSoleil(2457333.5); //[225.88621192607388, 302.6763369039327,\n * // 0.016701968773317977, -1.6291396906692837, 224.2570722354046,\n * // 301.0471972132634, 0.9911840619194138, 224.25125854183977,\n * // 221.79690960202632, -16.115660127694625, 221.79168151491098,\n * // -16.112230690435588]\n */\n var positionSoleil = function () {\n function positionSoleil(jj) {\n var T = (jj - jjAn2000Gregorien) / siecleJulien;\n var t2 = T * T;\n var l0 = normaliserDegres(280.46646 + 36000.76983 * T + 0.0003032 *\n t2);\n var M = normaliserDegres(357.52911 + 35999.05029 * T + -0.0001537 *\n t2);\n var e = 0.016708634 + -0.000042037 * T + -0.0000001267 * t2;\n var C = (1.914602 + -0.004817 * T + -0.000014 * t2) * sinus(M) + (\n 0.019993 - 0.000101 * T) * sinus(2 * M) + 0.000289 * sinus(3 *\n M);\n var sunLong = l0 + C;\n var sunAnomaly = M + C;\n var sunR = 1.000001018 * (1 - e * e) / (1 + e * cosinus(sunAnomaly));\n var Omega = 125.04 - 1934.136 * T;\n var Lambda = sunLong + -0.00569 + -0.00478 * sinus(Omega);\n var epsilon0 = obliquiteEcliptique(jj);\n var epsilon = epsilon0 + 0.00256 * cosinus(Omega);\n var Alpha = normaliserDegres(radiansVersDegres(Math.atan2(cosinus(\n epsilon0) * sinus(sunLong), cosinus(sunLong))));\n var Delta = radiansVersDegres(Math.asin(sinus(epsilon0) * sinus(\n sunLong)));\n var AlphaApp = normaliserDegres(radiansVersDegres(Math.atan2(\n cosinus(epsilon) * sinus(Lambda), cosinus(Lambda))));\n var DeltaApp = radiansVersDegres(Math.asin(sinus(epsilon) * sinus(\n Lambda)));\n\n return [l0, M, e, C, sunLong, sunAnomaly, sunR, Lambda, Alpha,\n Delta, AlphaApp, DeltaApp\n ];\n }\n\n return positionSoleil;\n }();\n\n /**\n * Pour calculer la nutation en longitude (deltaPsi),\n * et obliquité (deltaEpsilon) pour un nombre de jours juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|nutation}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} Nutation en [0] longitude et [1] obliquité en degrés\n * @example\n * nutation(2457333.5);\n * // [-0.000514859690208824, -0.0025586654864005456]\n */\n var nutation = function () {\n function nutation(jj) {\n var ta = [];\n var t = (jj - 2451545.0) / 36525.0;\n var t2 = t * t;\n var t3 = t * t2;\n var dp = 0;\n var de = 0;\n\n ta[0] = degresVersRadians(297.850363 + 445267.11148 * t - 0.0019142 *\n t2 + t3 / 189474.0);\n ta[1] = degresVersRadians(357.52772 + 35999.05034 * t - 0.0001603 *\n t2 - t3 / 300000.0);\n ta[2] = degresVersRadians(134.96298 + 477198.867398 * t + 0.0086972 *\n t2 + t3 / 56250.0);\n ta[3] = degresVersRadians(93.27191 + 483202.017538 * t - 0.0036825 *\n t2 + t3 / 327270);\n ta[4] = degresVersRadians(125.04452 - 1934.136261 * t + 0.0020708 *\n t2 + t3 / 450000.0);\n for (var i = 0; i < 5; i++) {\n ta[i] -= 2 * Math.PI * Math.floor(ta[i] / (2 * Math.PI));\n }\n var to10 = t / 10.0;\n\n for (var _i = 0; _i < 63; _i++) {\n var ang = 0;\n\n for (var j = 0; j < 5; j++) {\n if (argNutMult[_i * 5 + j] !== 0) {\n ang += argNutMult[_i * 5 + j] * ta[j];\n }\n }\n dp += (argNutCoeff[_i * 4 + 0] + argNutCoeff[_i * 4 + 1] * to10) *\n Math.sin(ang);\n de += (argNutCoeff[_i * 4 + 2] + argNutCoeff[_i * 4 + 3] * to10) *\n Math.cos(ang);\n }\n\n return [dp / (3600.0 * 10000.0), de / (3600.0 * 10000.0)];\n }\n\n return nutation;\n }();\n\n /**\n * Pour calculer l'équation du temps pour un moment précis.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|equationOfTime}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Number} Équation du temps pour une fraction de jour\n * @example\n * equationDuTemps(2457333.5); // 0.002839122270852552\n */\n var equationDuTemps = function () {\n function equationDuTemps(jj) {\n var tau = (jj - jjAn2000Gregorien) / (siecleJulien * 10);\n var l0 = normaliserDegres(280.4664567 + 360007.6982779 * tau +\n 0.03032028 * Math.pow(tau, 2) + Math.pow(tau, 3) / 49931 + -(\n Math.pow(tau, 4) / 15300) + -(Math.pow(tau, 5) / 2000000));\n var alpha = positionSoleil(jj)[10];\n var deltaPsi = nutation(jj)[0];\n var epsilon = obliquiteEcliptique(jj) + nutation(jj)[1];\n var E = l0 + -0.0057183 + -alpha + deltaPsi * cosinus(epsilon);\n\n E -= 20.0 * Math.floor(E / 20.0);\n\n return E / (24 * 60);\n }\n\n return equationDuTemps;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens et la fraction de l'équinoxe\n * de septembre au méridien de Paris pour une année grégorienne.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|equinoxe_a_paris}\n * @param {Number} an - Année grégorienne\n * @return {Number} Nombre de jours juliens et fraction de l'équinoxe\n * de septembre au méridien de Paris pour une année grégorienne\n * @example\n * fractionEquinoxe(2015); // 2457288.855100263\n */\n var fractionEquinoxe = function () {\n function fractionEquinoxe(an) {\n var equJED = equinoxe(an, 2);\n var equJD = equJED - deltaT(an) / (24 * 60 * 60);\n var equAPP = equJD + equationDuTemps(equJED);\n var dtParis = (2 + 20 / 60.0 + 15 / (60 * 60.0)) / 360;\n\n return equAPP + dtParis;\n }\n\n return fractionEquinoxe;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens correspondant à l'équinoxe\n * de septembre au méridien de Paris, pour une année grégorienne.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|paris_equinoxe_jd}\n * @param {Number} an - Année grégorienne\n * @return {Number} Nombre de jours juliens pour l'équinoxe de septembre\n * @example\n * equinoxeAParis(2015); // 2457288.5\n */\n var equinoxeAParis = function () {\n function equinoxeAParis(an) {\n var ep = fractionEquinoxe(an);\n\n return Math.floor(ep - 0.5) + 0.5;\n }\n\n return equinoxeAParis;\n }();\n\n /**\n * Pour déterminer si une année grégorienne est bissextile.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|leap_gregorian}\n * @param {Number} an - Année grégorienne\n * @return {Boolean} Est-ce une année bissextile ?\n * @example\n * gregorienBissextile(2012); // true\n */\n var gregorienBissextile = function () {\n function gregorienBissextile(an) {\n var result = an % 4 === 0 && !(an % 100 === 0 && an % 400 !== 0);\n\n return result;\n }\n\n return gregorienBissextile;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens (jj) à partir d'une date\n * grégorienne.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|gregorian_to_jd}\n * @param {Number} an - Année grégorienne\n * @param {Number} mois - Mois grégorien\n * @param {Number} jour - Jour grégorien\n * @return {Number} Nombre de jours juliens\n * @example\n * gregorienVersJj(2015,11,7); // 2457333.5\n */\n var gregorienVersJj = function () {\n function gregorienVersJj(an, mois, jour) {\n var anneeBissextile = gregorienBissextile(an) ? -1 : -2;\n\n return jjAn1Gregorien - 1 + 365 * (an - 1) + Math.floor((an - 1) /\n 4) + -Math.floor((an - 1) / 100) + Math.floor((an - 1) / 400) +\n Math.floor((367 * mois - 362) / 12 + (mois <= 2 ? 0 :\n anneeBissextile) + jour);\n }\n\n return gregorienVersJj;\n }();\n\n /**\n * Pour calculer une date grégorienne à partir du nombre de jours juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|jd_to_gregorian}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} [0] Année, [1] Mois et [2] Jour grégorien\n * @example\n * jjVersGregorien(2457333.5); // [2015, 11, 7]\n */\n var jjVersGregorien = function () {\n function jjVersGregorien(jj) {\n var wjd = Math.floor(jj - 0.5) + 0.5;\n var depoch = wjd - jjAn1Gregorien;\n var quadricent = Math.floor(depoch / 146097);\n var dqc = reste(depoch, 146097);\n var cent = Math.floor(dqc / 36524);\n var dcent = reste(dqc, 36524);\n var quad = Math.floor(dcent / 1461);\n var dquad = reste(dcent, 1461);\n var yindex = Math.floor(dquad / 365);\n var an = quadricent * 400 + cent * 100 + quad * 4 + yindex;\n var anneeBissextile = gregorienBissextile(an) ? 1 : 2;\n\n if (!(cent === 4 || yindex === 4)) an++;\n var yearday = wjd - gregorienVersJj(an, 1, 1);\n var leapadj = wjd < gregorienVersJj(an, 3, 1) ? 0 : anneeBissextile;\n var mois = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n var jour = wjd - gregorienVersJj(an, mois, 1) + 1;\n\n return [an, mois, jour];\n }\n\n return jjVersGregorien;\n }();\n\n /**\n * Pour convertir en nombre entier positif.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} num - le nombre à convertir\n * @return {Number} Le nombre entier positif\n * @example\n * absInt(-23.45); // 23\n */\n var absInt = function () {\n function absInt(num) {\n var result = Math.abs(parseInt(num, 10));\n\n return result;\n }\n\n return absInt;\n }();\n\n /**\n * Pour calculer l'année républicaine correspondant à un nombre de jours\n * juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link fourmilab.ch/documents/calendar/|annee_da_la_revolution}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} [0] An républicain,\n * [1] Nombre de jours juliens pour l'équinoxe de l'année républicaine\n * @example\n * anRepublicain(2379902.5); // [12, 2379857.5]\n */\n var anRepublicain = function () {\n function anRepublicain(jj) {\n var guess = jjVersGregorien(jj)[0] - 2;\n var lasteq = equinoxeAParis(guess);\n\n while (lasteq > jj) {\n guess--;\n lasteq = equinoxeAParis(guess);\n }\n\n var nexteq = lasteq - 1;\n\n while (!(lasteq <= jj && jj < nexteq)) {\n lasteq = nexteq;\n guess++;\n nexteq = equinoxeAParis(guess);\n }\n var adr = Math.round((lasteq - jjDebutRepublicain) / anneeTropique) +\n 1;\n\n return [adr, lasteq];\n }\n\n return anRepublicain;\n }();\n\n /**\n * Pour convertir des chiffres arabes en chiffres romains.\n * @access private\n * @author Iván Montes\n * @since 0.0.1\n * @license unknown\n * @see {@link http://blog.stevenlevithan.com/?p=65#comment-16107|Blog}\n * @param {Number} arabe - Chiffre arabe\n * @return {String} Chiffre romain\n * @example\n * arabeVersRomain(2012); // 'MMXII'\n */\n var arabeVersRomain = function () {\n function arabeVersRomain(arabe) {\n var lookup = {\n M: 1000,\n CM: 900,\n D: 500,\n CD: 400,\n C: 100,\n XC: 90,\n L: 50,\n XL: 40,\n X: 10,\n IX: 9,\n V: 5,\n IV: 4,\n I: 1\n };\n var tempArabe = Math.abs(arabe);\n var sign = arabe < 0 ? '-' : '';\n var romain = '';\n var i = void 0;\n\n for (i in lookup) {\n if (lookup.hasOwnProperty(i)) {\n while (tempArabe >= lookup[i]) {\n romain += i;\n tempArabe -= lookup[i];\n }\n }\n }\n\n return sign + romain;\n }\n\n return arabeVersRomain;\n }();\n\n /**\n * Pour créer un objet date grégorien valide.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} jour - le jour du mois gregorien en chiffres\n * @param {Number} mois - le mois gregorien en chiffres\n * @param {Number} an - l'année gregorienne en chiffres\n * @return {Object} L'objet date valide\n * @example\n * dateValide(10,12,34); // Sun Dec 10 34 00:00:00 GMT+0100 (CET)\n */\n var dateValide = function () {\n function dateValide(jour, mois, an) {\n var resultat = new Date(an, mois - 1, jour);\n\n resultat.setFullYear(an);\n\n return resultat;\n }\n\n return dateValide;\n }();\n\n /**\n * Pour mettre en capitale le premier caractère d'une chaîne.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} str - la chaîne à modifier\n * @return {String} la chaîne avec le premier caractère en capitale\n * @example\n * initialeEnCapitale(\"vingt\"); // \"Vingt\"\n */\n var initialeEnCapitale = function () {\n function initialeEnCapitale(str) {\n var result = str.charAt(0).toUpperCase() + str.slice(1);\n\n return result;\n }\n\n return initialeEnCapitale;\n }();\n\n /**\n * Pour calculer une date julienne à partir du nombre de jours juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|jd_to_julian}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} [0] An, [1] Mois et [2] Jour julien\n * @example\n * jjVersJulien(2457346.5); // [2015,11,7]\n */\n var jjVersJulien = function () {\n function jjVersJulien(jj) {\n var b = Math.floor(jj + 0.5) + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var mois = Math.floor(e < 14 ? e - 1 : e - 13);\n var jour = b - d - Math.floor(30.6001 * e);\n var an = Math.floor(mois > 2 ? c - 4716 : c - 4715);\n\n if (an < 1) {\n an--;\n }\n\n return [an, mois, jour];\n }\n\n return jjVersJulien;\n }();\n\n /**\n * Pour calculer la date républicaine à partir du nombre de jours juliens,\n * les 4 ou 5 'sansculottides' sont considérés comme un 13e mois.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link fourmilab.ch/documents/calendar/|jd_to_french_revolutionary}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} [0] An, [1] Mois, [2] Décade et [3] Jour républicain\n * @example\n * jjVersRepublicain(2379902.5); // [12, 2, 2, 6]\n */\n var jjVersRepublicain = function () {\n function jjVersRepublicain(jj) {\n var tempJj = Math.floor(jj) + 0.5;\n var adr = anRepublicain(tempJj);\n var an = adr[0];\n var equinox = adr[1];\n var mois = Math.floor((tempJj - equinox) / 30) + 1;\n var jour = (tempJj - equinox) % 30;\n var decade = Math.floor(jour / 10) + 1;\n\n jour = jour % 10 + 1;\n\n return [an, mois, decade, jour];\n }\n\n return jjVersRepublicain;\n }();\n\n /**\n * Pour convertir les nombres en toutes lettres.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} n - le nombre en chiffres\n * @param {String} [r] - par défaut, la réforme de 1990 est appliquée.\n * Pour utiliser l'ancienne notation, il suffit d'ajouter un argument.\n * @return {String} le nombre en toutes lettres\n * @example\n * nombreEnLettres(2371); // \"Deux-mille-trois-cent-soixante-et-onze\"\n * nombreEnLettres(1799,1); // \"Mille sept cent quatre-vingt-dix-neuf\"\n */\n var nombreEnLettres = function () {\n function nombreEnLettres(n, r) {\n var mill = void 0;\n var sepcen = void 0;\n var centl = void 0;\n var sepdix = void 0;\n var dixl = void 0;\n var sepunit = void 0;\n var unitl = void 0;\n var dizunit = void 0;\n var res = void 0;\n\n if (typeof n === 'number' && n > -10000 && n < 10000) {\n // UnitesEnLettres\n var u = unitesEnLettres;\n\n // DixainesEnLettres\n var v = dixainesEnLettres;\n\n // Saisie en valeur absolue\n var abs = Math.abs(n);\n var splus = r ? ' ' : '-';\n\n // Milliers\n var mil = parseInt(abs / 1000, 10);\n\n // Centaines\n var cent = parseInt(abs % 1000 / 100, 10);\n\n // Dixaines\n var dix = parseInt(abs % 100 / 10, 10);\n\n // Unités\n var unit = parseInt(abs % 10, 10);\n\n // Milliers\n if (mil === 1) {\n // Un seul millier\n mill = 'mille';\n } else if (mil > 1) {\n // Plusieurs milliers\n mill = '' + u[mil] + splus + 'mille';\n } else {\n // Pas de milliers\n mill = '';\n }\n\n // Centaines\n sepcen = mil > 0 ? splus : '';\n if (cent === 1) {\n // Une seule centaine\n centl = sepcen + 'cent';\n } else if (cent > 1 && dix === 0 && unit === 0) {\n // Plusieurs centaines\n centl = '' + sepcen + u[cent] + splus + 'cents';\n } else if (cent > 1) {\n // Plusieurs centaines suivies de dizaines\n centl = '' + sepcen + u[cent] + splus + 'cent';\n } else {\n // Pas de centaines\n centl = '';\n }\n\n // Dizaines et unités\n sepdix = mil + cent > 0 && dix + unit > 0 ? splus : '';\n if (dix > 0) {\n dixl = v[dix];\n\n // Splus\n sepunit = '-';\n } else {\n dixl = '';\n sepunit = '';\n }\n\n // Unités\n unitl = abs > 0 ? sepunit + u[unit] : 'zéro';\n\n // Multiples de 10\n if ((dix * 10 + unit) % 10 === 0) {\n unitl = '';\n }\n\n // Dix, soixante-dix, quatre-vingt-dix\n if ((dix === 1 || dix === 7 || dix === 9) && unit === 0) {\n dixl = dix === 1 ? 'dix' : v[dix] + '-dix';\n unitl = dix === 1 ? '' : u[unit];\n }\n\n // Onze+\n // soixante-et-onze+, quatre-vingt-onze+\n if ((dix === 1 || dix === 7 || dix === 9) && unit >= 1) {\n dixl = dix === 1 ? '' : v[dix];\n if (dix === 1) {\n sepunit = '';\n }\n unitl = dix === 7 && unit === 1 ? splus + 'et' + splus + u[10 +\n unit] : sepunit + u[10 + unit];\n }\n\n // Vingt-et-un, trente-et-un, quarante-et-un,\n // cinquante-et-un, soixante-et-un\n if (dix >= 2 && dix <= 6 && unit === 1) {\n unitl = splus + 'et' + splus + u[unit];\n }\n\n // Pluriel sur 80\n if (dix === 8 && unit === 0) {\n dixl = v[dix] + 's';\n unitl = '';\n }\n\n dizunit = sepdix + dixl + unitl;\n\n // Si nombre négatif\n var avjc = n < 0 ? 'Moins ' : '';\n\n res = abs > 0 ? initialeEnCapitale(avjc + mill + centl + dizunit) :\n 'Zéro';\n } else {\n res = '';\n }\n return res;\n }\n\n return nombreEnLettres;\n }();\n\n /**\n * Pour convertir les nombres en nombres ordinaux.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} n - le nombre en chiffres\n * @param {String} prem - le suffixe pour le chiffre 1\n * @param {String} exp - le suffixe pour les chiffres différents de 1\n * @return {String} le nombre ordinal\n * @example\n * nombreOrdinal(1,\"er\",\"e\"); // \"1er\"\n * nombreOrdinal(1,\"re\",\"e\"); // \"1re\"\n * nombreOrdinal(2,\"er\",\"e\"); // \"2e\"\n */\n var nombreOrdinal = function () {\n function nombreOrdinal(n, prem, exp) {\n var result = n === 1 || n === '1er' || n === '1re' ? '1' + prem : n +\n exp;\n\n return result;\n }\n\n return nombreOrdinal;\n }();\n\n /**\n * Pour convertir les nombres en toutes lettres en nombres ordinaux.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} saisie - le nombre en lettres\n * @param {String} [genre] - par défaut, le genre masculin est appliqué.\n * Pour utiliser le genre féminin, il suffit d'ajouter un argument.\n * @return {String} le nombre ordinal en lettres\n * @example\n * ordinauxEnLettres(\"Un\"); // \"Premier\"\n * ordinauxEnLettres(\"Un\", 1); // \"Première\"\n * ordinauxEnLettres(\"Deux\"); // \"Deuxième\"\n * ordinauxEnLettres(\"Vingt-trois\"); // \"Vingt-troisième\"\n */\n var ordinauxEnLettres = function () {\n function ordinauxEnLettres(saisie, genre) {\n var str = saisie.toString();\n var result = void 0;\n\n // Genre\n var prem = genre ? 'première' : 'premier';\n\n // Dernier caractère\n /* eslint-disable indent */\n switch (str.slice(-1)) {\n case 'o':\n case 't':\n case 'x':\n result = str + 'ième';\n break;\n case 'q':\n result = str + 'uième';\n break;\n case 'f':\n result = str.slice(0, str.length - 1) + 'vième';\n break;\n case 'e':\n result = str.slice(0, str.length - 1) + 'ième';\n break;\n case 's':\n result = str.slice(-2) === 'ts' ? str.slice(0, str.length - 1) +\n 'ième' : str + 'ième';\n break;\n case 'n':\n if (str.slice(-5) === 'et-un' || str.slice(-5) === 'et un') {\n result = str + 'ième';\n } else {\n result = str === 'Un' ? initialeEnCapitale(prem) : prem;\n }\n break;\n default:\n result = str;\n }\n\n /* eslint-enable indent */\n return result;\n }\n\n return ordinauxEnLettres;\n }();\n\n /**\n * Pour calculer le nombre de jours entre deux dates.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} j1 - le jour du mois de la première date en chiffres\n * @param {Number} m1 - le mois de la date de la première date en chiffres\n * @param {Number} a1 - l'année de la date de la première date en chiffres\n * @param {Number} j2 - le jour du mois de la deuxième date en chiffres\n * @param {Number} m2 - le mois de la date de la deuxième date en chiffres\n * @param {Number} a2 - l'année de la date de la deuxième date en chiffres\n * @return {Number} le nombre de jours entre les deux dates\n * @example\n * periodeEnJours(1, 1, 2016, 15, 1, 2016]); // 15\n * periodeEnJours(15, 1, 2016, 1, 1, 2016]); // 15\n * periodeEnJours(1, 1, 2016, 1, 1, 2016]); // 1\n */\n var periodeEnJours = function () {\n function periodeEnJours(j1, m1, a1, j2, m2, a2) {\n var date1 = dateValide(j1, m1, a1);\n var date2 = dateValide(j2, m2, a2);\n var debut = date2 > date1 ? date1 : date2;\n var fin = date2 > date1 ? date2 : date1;\n\n return Math.ceil((fin - debut) / (1000 * 60 * 60 * 24)) + 1;\n }\n\n return periodeEnJours;\n }();\n\n /**\n * Pour ajouter un préfixe de 0 à un nombre compris entre 1 et 9.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} n - le nombre à préfixer\n * @return {String} le nombre avec préfixe zéro\n * @example\n * prefixeZero(20); // 20\n * prefixeZero(9); // \"09\"\n * prefixeZero(0); // 0\n * prefixeZero(-4); // -4\n */\n var prefixeZero = function () {\n function prefixeZero(n) {\n var result = n < 10 && n > 0 ? '0' + n : n;\n\n return result;\n }\n\n return prefixeZero;\n }();\n\n /**\n * Pour convertir uniquement 'un' en nombre ordinal.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} saisie - le nombre en lettres\n * @param {String} [genre] - par défaut, le genre masculin est appliqué.\n * Pour utiliser le genre féminin, il suffit d'ajouter un argument.\n * @return {String} le nombre - ordinal ou non - en lettres\n * @example\n * premierOrdinalEnLettres(\"Un\"); // \"Premier\"\n * premierOrdinalEnLettres(\"Un\", 1); // \"Première\"\n * premierOrdinalEnLettres(\"Deux\"); // \"Deux\"\n * premierOrdinalEnLettres(\"Vingt-trois\"); // \"Vingt-trois\"\n */\n var premierOrdinalEnLettres = function () {\n function premierOrdinalEnLettres(saisie, genre) {\n var str = saisie.toString();\n var result = void 0;\n\n // Genre\n var prem = genre ? 'première' : 'premier';\n\n if (str === 'Un') {\n result = initialeEnCapitale(prem);\n } else if (str === 'un') {\n result = prem;\n } else {\n result = str;\n }\n\n return result;\n }\n\n return premierOrdinalEnLettres;\n }();\n\n /**\n * Pour remplacer en série avec un objet contenant des regex.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} texte - Le texte à modifier\n * @param {Object} regex - Les expressions régulières de remplacements\n * @param {String} options - Les options des expressions régulières\n * @return {String} Le texte modifié\n * @example\n * remplacements('Bonjour', {'jour': 'soir'}, 'gi');\n * // 'Bonsoir'\n */\n var remplacements = function () {\n function remplacements(texte, regex, options) {\n var resultat = regex.reduce(\n\n // jscs:disable\n function (data, item) {\n var result = data.replace(new RegExp(item.regexp, options),\n item.replace);\n\n return result;\n }, texte);\n\n // jscs:enable\n return resultat;\n }\n\n return remplacements;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens à partir d'une date républicaine.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link fourmilab.ch/documents/calendar/|french_revolutionary_to_jd}\n * @param {Number} an - Année républicaine\n * @param {Number} mois - Mois républicain\n * @param {Number} decade - Décade républicaine\n * @param {Number} jour - Jour de la décade républicaine\n * @return {Number} Nombre de jours juliens\n * @example\n * republicainVersJj(12, 2, 2, 6); // 2379902.5\n */\n var republicainVersJj = function () {\n function republicainVersJj(an, mois, decade, jour) {\n var guess = jjDebutRepublicain + anneeTropique * (an - 1 - 1);\n var adr = [an - 1, 0];\n\n while (adr[0] < an) {\n adr = anRepublicain(guess);\n guess = adr[1] + (anneeTropique + 2);\n }\n\n return adr[1] + 30 * (mois - 1) + 10 * (decade - 1) + (jour - 1);\n }\n\n return republicainVersJj;\n }();\n\n /**\n * Pour convertir le jour du mois républicain en décade.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} rjmc - le jour du mois républicain\n * @return {Number} La décade républicaine\n * @example\n * rjmcVersRdc(28); // 3\n */\n var rjmcVersRdc = function () {\n function rjmcVersRdc(rjmc) {\n var resultat = Math.abs(parseInt(rjmc, 10) % 10) === 0 ? Math.abs(\n parseInt(rjmc / 10, 10)) : Math.abs(parseInt(rjmc / 10, 10) + 1);\n\n return resultat;\n }\n\n return rjmcVersRdc;\n }();\n\n /**\n * Pour convertir le jour du mois républicain en jour de la décade.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} rjmc - le jour du mois républicain\n * @return {Number} Le jour de la décade républicaine\n * @example\n * rjmcVersRjdc(28); // 8\n */\n var rjmcVersRjdc = function () {\n function rjmcVersRjdc(rjmc) {\n var resultat = Math.abs(parseInt(rjmc, 10) % 10) === 0 ? 10 : Math.abs(\n parseInt(rjmc, 10) % 10);\n\n return resultat;\n }\n\n return rjmcVersRjdc;\n }();\n\n /**\n * Pour convertir des chiffres romains en chiffres arabes.\n * @access private\n * @author Iván Montes\n * @since 0.0.1\n * @license unknown\n * @see {@link http://blog.stevenlevithan.com/?p=65#comment-16129|Blog}\n * @param {String} romain - Chiffre romain\n * @return {Number} Chiffre arabe\n * @example\n * romainVersArabe('MMXII'); // 2012\n */\n var romainVersArabe = function () {\n function romainVersArabe(romain) {\n var lookup = {\n I: 1,\n V: 5,\n X: 10,\n L: 50,\n C: 100,\n D: 500,\n M: 1000\n };\n var arabe = 0;\n var i = romain.length - 1;\n var tempRomain = romain.toUpperCase();\n\n for (i; i >= 0; i--) {\n if (lookup[tempRomain[i]] < lookup[tempRomain[i + 1]]) {\n arabe -= lookup[tempRomain[i]];\n } else {\n arabe += lookup[tempRomain[i]];\n }\n }\n\n return arabe;\n }\n\n return romainVersArabe;\n }();\n\n /**\n * Pour obtenir une saisie valide.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} saisie - La saisie d'une date\n * @param {Object} regexp - Un objet regexpRepublicain ou regexpGregorien\n * pour convertir les mois\n * @return {Array} La saisie valide\n * @example\n * saisieValide(saisie, regexpRepublicain);\n * saisieValide(saisie, regexpGregorien);\n */\n var saisieValide = function () {\n function saisieValide(saisie, regexp) {\n var tempSaisie = saisie;\n var u = void 0;\n\n // On remplace le texte restant par des chiffres arabes\n tempSaisie = remplacements(tempSaisie, regexp, 'gi').split(\n /[\\/\\.]+/gi);\n\n // Si il n'y a que l'année [1,1,ac]\n if (!tempSaisie[1] && !tempSaisie[2]) {\n if (tempSaisie[0].match(/\\d-/gi) || tempSaisie[0] === '') {\n tempSaisie[0] = u;\n } else {\n tempSaisie = [1, 1, tempSaisie[0]];\n }\n }\n\n // Si il n'y a que l'année et le mois [1,mc,ac]\n if (!tempSaisie[0] && tempSaisie[1] && tempSaisie[2]) {\n tempSaisie = [1, tempSaisie[1], tempSaisie[2]];\n }\n if (tempSaisie[1] && !tempSaisie[2]) {\n tempSaisie = [1, tempSaisie[0], tempSaisie[1]];\n }\n\n return tempSaisie;\n }\n\n return saisieValide;\n }();\n\n /**\n * Pour calculer le nombre de semaines depuis le début de l'année ou du mois.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} j - le jour du mois grégorien\n * @param {Number} m - le mois grégorien\n * @param {Number} a - l'année grégorienne\n * @param {Number} [mois] - par défaut, le calcul correspond à l'année.\n * Pour calculer sur le mois en cours, il suffit d'ajouter un argument.\n * @return {Number} le nombre de semaines\n * @example\n * semaineComplete(14, 7, 2016); // 28\n * semaineComplete(14, 7, 2016, 1); // 2\n */\n var semaineComplete = function () {\n function semaineComplete(j, m, a, mois) {\n // Si l'argument mois existe, calcule depuis le début du mois.\n // sinon depuis le début de l'année\n var x = mois ? m : 1;\n var jourSemaine = dateValide(1, x, a).getDay();\n\n jourSemaine = jourSemaine === 0 ? 7 : jourSemaine;\n\n // Si le premier jour < jeudi (4), ajouter une semaine\n var n = jourSemaine <= 4 ? 1 : 0;\n var nombreSemaines = (periodeEnJours(1, x, a, j, m, a) - (8 -\n jourSemaine)) / 7;\n var semainesValides = nombreSemaines > parseInt(nombreSemaines, 10) ?\n parseInt(nombreSemaines, 10) + n + 1 : parseInt(nombreSemaines,\n 10) + n;\n\n return semainesValides;\n }\n\n return semaineComplete;\n }();\n\n /**\n * Pour convertir la saisie grégorienne ou julienne en Objet Jour.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} saisie - Saisie d'une date\n * @param {Boolean} limites - Par défaut, les résultats sont limités\n * aux périodes d'utilisation des calendriers. Seule la valeur `false`\n * permet de désactiver ces limites.\n * @return {Array} Les dates républicaines, grégoriennes et juliennes\n * @example\n * tabGregorien(saisie, this.limites);\n */\n var tabGregorien = function () {\n function tabGregorien(saisie, limites) {\n // Uniformisation de la saisie\n var iesaisie = saisie[0] === '/' ? '1' + saisie : saisie;\n var saisieGregorien = saisieValide(iesaisie, regexpGregorien);\n var tab = [];\n\n // Lorsque la date est valide [gjmc,gmc,gac]\n if (saisieGregorien[2] && saisieGregorien[0] < 32 && absInt(\n saisieGregorien[0]) !== 0 && saisieGregorien[1] < 13 &&\n saisieGregorien[1] !== '' && absInt(saisieGregorien[1]) !== 0) {\n tab[4] = gregorienVersJj(parseInt(saisieGregorien[2], 10), absInt(\n saisieGregorien[1]), absInt(saisieGregorien[0]));\n\n // Limitations gregorien/julien\n if (limites === true && tab[4] < jjDebutGregorien) {\n tab[5] = absInt(saisieGregorien[0]);\n tab[6] = absInt(saisieGregorien[1]);\n tab[7] = parseInt(saisieGregorien[2], 10);\n tab[8] = dateValide(tab[5], tab[6], tab[7]);\n } else {\n tab[0] = absInt(saisieGregorien[0]);\n tab[1] = absInt(saisieGregorien[1]);\n tab[2] = parseInt(saisieGregorien[2], 10);\n tab[3] = dateValide(tab[0], tab[1], tab[2]);\n var dateJulienne = jjVersJulien(tab[4]);\n\n tab[5] = dateJulienne[2];\n tab[6] = dateJulienne[1];\n tab[7] = dateJulienne[0];\n tab[8] = dateValide(tab[5], tab[6], tab[7]);\n }\n\n // Limitations republicain\n if (tab[4] >= jjDebutRepublicain && tab[4] <= jjFinRepublicain ||\n tab[4] >= jjDebutCommuneDeParis && tab[4] <=\n jjFinCommuneDeParis || limites === false) {\n var dateRepublicaine = jjVersRepublicain(tab[4]);\n\n tab = tab.concat([dateRepublicaine[3], dateRepublicaine[2], (\n dateRepublicaine[2] - 1) * 10 + dateRepublicaine[3],\n dateRepublicaine[1], dateRepublicaine[0]\n ]);\n }\n }\n\n return tab;\n }\n\n return tabGregorien;\n }();\n\n /**\n * Pour convertir la saisie républicaine en Objet Jour.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} saisie - Saisie d'une date\n * @param {Boolean} limites - Par défaut, les résultats sont limités\n * aux périodes d'utilisation des calendriers. Seule la valeur `false`\n * permet de désactiver ces limites.\n * @return {Array} Les dates républicaines, grégoriennes et juliennes\n * @example\n * tabRepublicain(saisie, this.limites);\n */\n var tabRepublicain = function () {\n function tabRepublicain(saisie, limites) {\n // On remplace les chiffres romains en chiffres arabes\n var saisieRepublicain = saisie.replace(\n /\\W?an\\s-?([-MDCLXVI]+)\\W?/gi,\n\n // jscs:disable\n function (x, p1) {\n var rva = romainVersArabe(p1);\n\n return x.match(/-/) ? ' -' + rva : ' ' + rva;\n });\n\n // jscs:enable\n var tab = [];\n\n // Uniformisation de la saisie\n saisieRepublicain = saisieValide(saisieRepublicain,\n regexpRepublicain);\n\n // Lorsque la date est valide [rjmc,rmc,rac]\n if (saisieRepublicain[2] && saisieRepublicain[0] < 30 && absInt(\n saisieRepublicain[0]) !== 0 && saisieRepublicain[1] < 14 &&\n absInt(saisieRepublicain[1]) !== 0) {\n tab[4] = republicainVersJj(parseInt(saisieRepublicain[2], 10),\n parseInt(saisieRepublicain[1], 10), rjmcVersRdc(\n saisieRepublicain[0]), rjmcVersRjdc(saisieRepublicain[0]));\n\n // Si jj (tab[4]) est dans les limites ou en illimité\n if (tab[4] >= jjDebutRepublicain && tab[4] <= jjFinRepublicain ||\n tab[4] >= jjDebutCommuneDeParis && tab[4] <=\n jjFinCommuneDeParis || limites === false) {\n var dateGregorienne = jjVersGregorien(tab[4]);\n var dateJulienne = jjVersJulien(tab[4]);\n\n tab[0] = dateGregorienne[2];\n tab[1] = dateGregorienne[1];\n tab[2] = dateGregorienne[0];\n tab[3] = dateValide(tab[0], tab[1], tab[2]);\n tab[5] = dateJulienne[2];\n tab[6] = dateJulienne[1];\n tab[7] = dateJulienne[0];\n tab[8] = dateValide(tab[5], tab[6], tab[7]);\n tab[9] = rjmcVersRjdc(saisieRepublicain[0]);\n tab[10] = rjmcVersRdc(saisieRepublicain[0]);\n tab[11] = absInt(saisieRepublicain[0]);\n tab[12] = parseInt(saisieRepublicain[1], 10);\n tab[13] = parseInt(saisieRepublicain[2], 10);\n }\n }\n\n return tab;\n }\n\n return tabRepublicain;\n }();\n\n /**\n * Pour convertir une saisie en objet JavaScript.\n * @memberof acte\n * @class\n * @chainable\n * @access public\n * @author Gilles Toubiana\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} saisie - Saisie d'une date grégorienne ou républicaine.\n * @param {Boolean} [limites=true] - Par défaut, les résultats sont limités\n * aux périodes d'utilisation des calendriers :
\n * - une saisie de date grégorienne sera considérée comme julienne avant\n * le 15/10/1582
\n * - une saisie de date républicaine ne sera valide que du 22/9/1792 au\n * 31/12/1805 (Période républicaine) et du 18/3/1871 au 28/5/1871\n * (Commune de Paris).
\n * La valeur `false` permet de désactiver ces limitations.\n * @since 0.0.1\n * @license MIT\n */\n acte.Jour = function () {\n function Jour(saisie, limites) {\n _classCallCheck(this, Jour);\n\n var tab = [];\n\n this.variables = this.variables || {};\n this.limites = limites !== false;\n\n // On détecte si c'est une date républicaine\n if (saisie.match(/\\W?an\\s-?([-MDCLXVI]+|\\d+)\\W?/gi)) {\n tab = tabRepublicain(saisie, this.limites);\n\n // Si ce n'est pas du républicain (donc grégorien ou julien)\n } else {\n tab = tabGregorien(saisie, this.limites);\n }\n\n // Ecriture de toutes les valeurs\n this.variables = {\n gregorien: {\n jm: tab[0],\n m: tab[1],\n a: tab[2],\n od: tab[3]\n },\n julien: {\n jj: tab[4],\n jm: tab[5],\n m: tab[6],\n a: tab[7],\n od: tab[8]\n },\n republicain: {\n jd: tab[9],\n d: tab[10],\n jm: tab[11],\n m: tab[12],\n a: tab[13]\n },\n limites: this.limites\n };\n }\n\n return Jour;\n }();\n\n /**\n * Pour formater une date grégorienne.\n * @memberof acte\n * @access public\n * @since 0.0.15\n * @author Gilles Toubiana\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @license MIT\n * @param {String} [format='%J %Mlb %A'] - Le modèle de formatage :

\n * BALISES
\n * `%A` ou `%AN` - Année
\n * `%D`, `%DM` ou `%SM` - Décade/Semaine dans le mois
\n * `%J` ou `%JM` - Jour dans le mois
\n * `%JA` - Jour dans l'année
\n * `%JS` ou `%JD` - Jour de la Décade/Semaine
\n * `%M` ou `%MA` - Mois dans l'année
\n * `%S`, `%SA` ou `%DA` - Semaine/Décade dans l'année

\n * FILTRES
\n * `1` - mois ou jour sur 1 caractère
\n * `2` - mois ou jour sur 2 caractères
\n * `3` - mois ou jour sur 3 caractères
\n * `a` - mois ou jour en Abrégé
\n * `b` - en Bas de casse (minuscules)
\n * `c` ou `m` - en Capitales (Majuscules)
\n * `f` - Féminin de p (première ou 1re)
\n * `l` - chiffres en Lettres
\n * `o` - lettres ou chiffres en Ordinaux
\n * `p` - Premier ou 1er
\n * `r` - chiffres en Romains
\n * `v` - chiffres en lettres (Vieille notation)
\n * `z` - Zéro devant le chiffre
\n * @param {String} [erreur='Pas de correspondances.'] - Le message d'erreur\n * @param {Function} [rappel] - Une fonction de rappel\n * @return {String} La date grégorienne formatée\n * @example\n * new acte.Jour('1/1/1600').gregorien('%J %Mlb %A'); // '1 janvier 1600'\n */\n acte.Jour.prototype.gregorien = function () {\n function gregorien(format, erreur, rappel) {\n var frmt = format || '%J %Mlb %A';\n var err = erreur || 'Pas de correspondances.';\n var tvg = this.variables.gregorien;\n var resultat = void 0;\n\n if (tvg.od) {\n (function () {\n var obj = {\n A: tvg.a,\n D: semaineComplete(tvg.jm, tvg.m, tvg.a, 1),\n JA: periodeEnJours(1, 1, tvg.a, tvg.jm, tvg.m, tvg.a),\n J: tvg.jm,\n JS: tvg.od.getDay(),\n JSl: jourGregorien[tvg.od.getDay()],\n M: tvg.m,\n Ml: moisGregorien[tvg.m - 1],\n S: semaineComplete(tvg.jm, tvg.m, tvg.a, 0)\n };\n\n resultat = frmt.replace(/%[ADJMNSabcflmoprvz123]+/g,\n\n /* Sortir cette partie ? */\n // jscs:disable\n function (x) {\n // jscs:enable\n var ordinaux = void 0;\n var res = x;\n var chiffres = true;\n\n // BALISES\n if (x.match(/A/)) {\n if (x.match(/AN/)) {\n // AN = Année\n res = obj.A;\n } else {\n // A = Année\n res = obj.A;\n }\n }\n if (x.match(/J/)) {\n if (x.match(/JA/)) {\n // JA = Jour dans l'Année\n res = obj.JA;\n } else {\n // J = Jour dans le mois\n res = obj.J;\n }\n }\n if (x.match(/M/)) {\n if (x.match(/MA/)) {\n // MA = Mois dans l'Année\n res = obj.M;\n } else if (x.match(/JM/)) {\n // JM = Jour dans le Mois\n res = obj.J;\n } else {\n // M = Mois dans l'année\n res = obj.M;\n }\n }\n if (x.match(/D/)) {\n if (x.match(/DA/)) {\n // DA = Décade/Semaine dans l'Année\n res = obj.S;\n } else if (x.match(/DM/)) {\n // DM = Décade/Semaine dans le Mois\n res = obj.D;\n } else if (x.match(/JD/)) {\n // JD = Jour de la Décade/Semaine\n res = obj.JS;\n } else {\n // D = Décade/Semaine dans le mois\n res = obj.D;\n }\n }\n if (x.match(/S/)) {\n if (x.match(/SA/)) {\n // SA = Décade/Semaine dans l'année\n res = obj.S;\n } else if (x.match(/SM/)) {\n // SM = Décade/Semaine dans le mois\n res = obj.D;\n } else if (x.match(/JS/)) {\n // JS = Jour de la décade/semaine\n res = obj.JS;\n } else {\n // S = Décade/Semaine dans l'année\n res = obj.S;\n }\n }\n\n /* FILTRES */\n if (x.match(/r/)) {\n // - r = chiffres en Romains\n res = arabeVersRomain(res);\n }\n if (x.match(/z/)) {\n // - z = Zéro devant le chiffre\n res = prefixeZero(res);\n }\n if (x.match(/l|v/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MAl | Ml = Mois en Lettres\n res = obj.Ml[0];\n chiffres = false;\n } else if (x.match(/(JS|JD)/)) {\n // JSl | JDl = Jour de la Décade/Semaine en Lettres\n res = obj.JSl[0];\n chiffres = false;\n } else {\n if (x.match(/v/)) {\n // - v = chiffres en lettres (Vieille notation)\n res = nombreEnLettres(res, 1);\n } else {\n // - l = chiffres en Lettres\n res = nombreEnLettres(res);\n }\n ordinaux = true;\n }\n }\n if (x.match(/a/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MAa | Ma = Mois en Abrégé\n res = obj.Ml[1];\n } else if (x.match(/(JS|JD)/)) {\n // JSa | JDa = Jour de la Décade/Semaine en Abrégé\n res = obj.JSl[1];\n }\n }\n if (x.match(/3/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MA3 | M3 = Mois en Abrégé sur 3 caractères\n res = obj.Ml[2];\n } else if (x.match(/(JS|JD)/)) {\n // JS3 | JD3 = Jour de la Décade/Semaine en Abrégé\n // sur 3 caractères\n res = obj.JSl[2];\n }\n }\n if (x.match(/2/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MA2 | M2 = Mois en Abrégé sur 2 caractères\n res = obj.Ml[3];\n } else if (x.match(/(JS|JD)/)) {\n // JS2 | JD2 = Jour de la Décade/Semaine en Abrégé\n // sur 2 caractères\n res = obj.JSl[3];\n }\n }\n if (x.match(/1/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MA1 | M1 = Mois en Abrégé sur 1 caractère\n res = obj.Ml[4];\n } else if (x.match(/(JS|JD)/)) {\n // JS1 | JD1 = Jour de la Décade/Semaine en Abrégé\n // sur 1 caractère\n res = obj.JSl[4];\n }\n }\n\n // ENCOURS bugs globaux avec chiffres et lettres\n // cf %Jrzl\n var lettres = res;\n\n // - o = lettres ou chiffres en Ordinaux\n if (x.match(/o/)) {\n if (ordinaux && x.match(/f/)) {\n res = ordinauxEnLettres(lettres, 1);\n } else if (ordinaux) {\n res = ordinauxEnLettres(lettres);\n } else if (x.match(/f/) && chiffres) {\n res = nombreOrdinal(lettres, 're', 'e');\n } else if (chiffres) {\n res = nombreOrdinal(lettres, 'er', 'e');\n }\n }\n\n // - p = Premier ou 1er\n if (x.match(/p/)) {\n if (ordinaux) {\n res = premierOrdinalEnLettres(lettres);\n } else {\n res = nombreOrdinal(lettres, 'er', '');\n }\n }\n\n // - f = Féminin de p (première ou 1re)\n if (x.match(/[^o]f/)) {\n if (ordinaux) {\n res = premierOrdinalEnLettres(lettres, 1);\n } else {\n res = nombreOrdinal(lettres, 're', '');\n }\n }\n if (x.match(/b/)) {\n // - b = en Bas de casse (minuscules)\n res = res.toString().toLowerCase();\n }\n if (x.match(/c|m/)) {\n // - c | m = en Capitales (Majuscules)\n res = res.toString().toUpperCase();\n }\n return res;\n });\n\n if (typeof rappel === 'function') {\n resultat = rappel(resultat, obj);\n }\n })();\n } else {\n resultat = err;\n }\n\n return resultat;\n }\n\n return gregorien;\n }();\n return acte;\n }\n\n return umdCallback;\n}());\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["acte.min.js"],"names":["Array","prototype","reduce","callback","this","TypeError","value","t","Object","len","length","k","arguments","universalModuleDefinition","root","factory","tempRoot","exports","module","define","amd","acte","umdCallback","_classCallCheck","instance","Constructor","jde0Tab2000","anneeTropique","argNutCoeff","argNutMult","delta","dixainesEnLettres","jde0Tab1000","jjAn1Gregorien","jjAn2000Gregorien","jjDebutCommuneDeParis","jjDebutGregorien","jjDebutRepublicain","jjFinCommuneDeParis","jjFinRepublicain","jourGregorien","moisGregorien","regexpGregorien","regexp","replace","regexpRepublicain","siecleJulien","termesPerEquinoxes","unitesEnLettres","degresVersRadians","d","result","Math","PI","normaliserDegres","a","floor","radiansVersDegres","r","reste","b","sinus","sin","cosinus","cos","equinoxe","an","item","i","j","Jde0tab","S","Y","Jde0","pow","T","W","deltaL","deltaT","dt","maxindex","obliquiteEcliptique","jj","oTerms","u","v","eps","abs","positionSoleil","t2","l0","M","e","C","sunLong","sunAnomaly","sunR","Omega","Lambda","epsilon0","epsilon","Alpha","atan2","Delta","asin","AlphaApp","DeltaApp","nutation","ta","t3","dp","de","to10","_i","ang","equationDuTemps","tau","alpha","deltaPsi","E","fractionEquinoxe","equJED","equJD","equAPP","dtParis","equinoxeAParis","ep","gregorienBissextile","gregorienVersJj","mois","jour","anneeBissextile","jjVersGregorien","wjd","depoch","quadricent","dqc","cent","dcent","quad","dquad","yindex","yearday","leapadj","absInt","num","parseInt","anRepublicain","guess","lasteq","nexteq","adr","round","arabeVersRomain","arabe","lookup","CM","D","CD","XC","L","XL","X","IX","V","IV","I","tempArabe","sign","romain","hasOwnProperty","dateValide","resultat","Date","setFullYear","initialeEnCapitale","str","charAt","toUpperCase","slice","jjVersJulien","c","jjVersRepublicain","tempJj","equinox","decade","nombreEnLettres","n","mill","sepcen","centl","sepdix","dixl","sepunit","unitl","dizunit","res","splus","mil","dix","unit","avjc","nombreOrdinal","prem","exp","ordinauxEnLettres","saisie","genre","toString","periodeEnJours","j1","m1","a1","j2","m2","a2","date1","date2","debut","fin","ceil","prefixeZero","premierOrdinalEnLettres","remplacements","texte","regex","options","data","RegExp","republicainVersJj","rjmcVersRdc","rjmc","rjmcVersRjdc","romainVersArabe","tempRomain","saisieValide","tempSaisie","split","match","semaineComplete","m","x","jourSemaine","getDay","nombreSemaines","semainesValides","tabGregorien","limites","iesaisie","saisieGregorien","tab","dateJulienne","dateRepublicaine","concat","tabRepublicain","saisieRepublicain","p1","rva","dateGregorienne","Jour","variables","gregorien","jm","od","julien","republicain","jd","format","erreur","rappel","frmt","err","tvg","obj","A","JA","J","JS","JSl","Ml","ordinaux","chiffres","lettres","toLowerCase"],"mappings":"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","file":"acte.min.js","sourcesContent":["/* POLYFILL: Internet Explorer 8 => Array.prototype.reduce */\n/* istanbul ignore if */\nif (!Array.prototype.reduce) {\n // jscs:disable\n Array.prototype.reduce = function (callback /*, initialValue*/ ) {\n 'use strict';\n\n if (this == null) {\n throw new TypeError(\n 'Array.prototype.reduce called on null or undefined');\n }\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n var t = Object(this),\n len = t.length >>> 0,\n k = 0,\n value;\n if (arguments.length == 2) {\n value = arguments[1];\n } else {\n while (k < len && !(k in t)) {\n k++;\n }\n if (k >= len) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n value = t[k++];\n }\n for (; k < len; k++) {\n if (k in t) {\n value = callback(value, t[k], k, t);\n }\n }\n return value;\n };\n // jscs:enable\n}\n\n/**\n * acte - Librairie Javascript pour manipuler des données généalogiques.\n * @copyright 2015-Present, Gilles Toubiana\n * @namespace acte\n * @version 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @license MIT\n */\n\n(function () {\n function universalModuleDefinition(root, factory) {\n var tempRoot = root;\n\n /* istanbul ignore next */\n if (typeof exports === 'object' && typeof module === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n exports.acte = factory();\n } else {\n tempRoot.acte = factory();\n }\n }\n\n return universalModuleDefinition;\n})()(this, function () {\n function umdCallback() {\n 'use strict';\n\n /** @namespace */\n /* eslint-disable no-use-before-define */\n\n var acte = acte || {};\n /* eslint-enable no-use-before-define */\n /* istanbul ignore next */\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n /**\n * Jours juliens des équinoxes de l'an 1000 à l'an 2000.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|JDE0tab2000}\n * @constant {Array}\n */\n var jde0Tab2000 = [\n [2451623.80984, 365242.37404, 0.05169, -0.00411, -0.00057],\n [2451716.56767, 365241.62603, 0.00325, 0.00888, -0.00030],\n [2451810.21715, 365242.01767, -0.11575, 0.00337, 0.00078],\n [2451900.05952, 365242.74049, -0.06223, -0.00823, 0.00032]\n ];\n\n /**\n * Nombre de jours, sur Terre, pour que le Soleil retourne à la même\n * position\n * dans le cycle des saisons.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|TropicalYear}\n * @constant {Number}\n */\n var anneeTropique = 365.24219878;\n\n /**\n * Coefficient des sinus et cosinus de l'argument pour la nutation.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|nutArgCoeff}\n * @constant {Array}\n */\n var argNutCoeff = [-171996, -1742, 92095, 89, -13187, -16, 5736, -31, -\n 2274, -2, 977, -5, 2062, 2, -895, 5, 1426, -34, 54, -1, 712, 1, -7, 0, -\n 517, 12, 224, -6, -386, -4, 200, 0, -301, 0, 129, -1, 217, -5, -95, 3, -\n 158, 0, 0, 0, 129, 1, -70, 0, 123, 0, -53, 0, 63, 0, 0, 0, 63, 1, -33,\n 0, -59, 0, 26, 0, -58, -1, 32, 0, -51, 0, 27, 0, 48, 0, 0, 0, 46, 0, -\n 24, 0, -38, 0, 16, 0, -31, 0, 13, 0, 29, 0, 0, 0, 29, 0, -12, 0, 26,\n 0, 0, 0, -22, 0, 0, 0, 21, 0, -10, 0, 17, -1, 0, 0, 16, 0, -8, 0, -16,\n 1, 7, 0, -15, 0, 9, 0, -13, 0, 7, 0, -12, 0, 6, 0, 11, 0, 0, 0, -10,\n 0, 5, 0, -8, 0, 3, 0, 7, 0, -3, 0, -7, 0, 0, 0, -7, 0, 3, 0, -7, 0, 3,\n 0, 6, 0, 0, 0, 6, 0, -3, 0, 6, 0, -3, 0, -6, 0, 3, 0, -6, 0, 3, 0, 5,\n 0, 0, 0, -5, 0, 3, 0, -5, 0, 3, 0, -5, 0, 3, 0, 4, 0, 0, 0, 4, 0, 0,\n 0, 4, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, 0, 3, 0, 0, 0, -3,\n 0, 0, 0, -3, 0, 0, 0, -3, 0, 0, 0, -3, 0, 0, 0, -3, 0, 0, 0, -3, 0, 0,\n 0, -3, 0, 0, 0\n ];\n\n /**\n * Termes périodiques pour la nutation en longitude et obliquité.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|nutArgMult}\n * @constant {Array}\n */\n var argNutMult = [0, 0, 0, 0, 1, -2, 0, 0, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0,\n 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -2, 1, 0, 2, 2, 0, 0, 0, 2, 1, 0,\n 0, 1, 2, 2, -2, -1, 0, 2, 2, -2, 0, 1, 0, 0, -2, 0, 0, 2, 1, 0, 0, -1,\n 2, 2, 2, 0, 0, 0, 0, 0, 0, 1, 0, 1, 2, 0, -1, 2, 2, 0, 0, -1, 0, 1, 0,\n 0, 1, 2, 1, -2, 0, 2, 0, 0, 0, 0, -2, 2, 1, 2, 0, 0, 2, 2, 0, 0, 2, 2,\n 2, 0, 0, 2, 0, 0, -2, 0, 1, 2, 2, 0, 0, 0, 2, 0, -2, 0, 0, 2, 0, 0, 0, -\n 1, 2, 1, 0, 2, 0, 0, 0, 2, 0, -1, 0, 1, -2, 2, 0, 2, 2, 0, 1, 0, 0, 1, -\n 2, 0, 1, 0, 1, 0, -1, 0, 0, 1, 0, 0, 2, -2, 0, 2, 0, -1, 2, 1, 2, 0,\n 1, 2, 2, 0, 1, 0, 2, 2, -2, 1, 1, 0, 0, 0, -1, 0, 2, 2, 2, 0, 0, 2, 1,\n 2, 0, 1, 0, 0, -2, 0, 2, 2, 2, -2, 0, 1, 2, 1, 2, 0, -2, 0, 1, 2, 0,\n 0, 0, 1, 0, -1, 1, 0, 0, -2, -1, 0, 2, 1, -2, 0, 0, 0, 1, 0, 0, 2, 2,\n 1, -2, 0, 2, 0, 1, -2, 1, 0, 2, 1, 0, 0, 1, -2, 0, -1, 0, 1, 0, 0, -2,\n 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, -1, -1, 1, 0, 0, 0, 1, 1, 0,\n 0, 0, -1, 1, 2, 2, 2, -1, -1, 2, 2, 0, 0, -2, 2, 2, 0, 0, 3, 2, 2, 2, -\n 1, 0, 2, 2\n ];\n\n /**\n * Tableau des Delta T différence entre Temps universel et temps terrestre\n * en secondes, observées pour les années paires de 1620 à 2016.\n * @access private\n * @author F.R. Stephenson & L.V. Morrison & IERS & Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://www.staff.science.uu.nl/~gent0113/deltat/deltat_modern.htm|Valeurs} |\n * {@link http://maia.usno.navy.mil/ser7/deltat.data|IERS} |\n * {@link http://maia.usno.navy.mil/ser7/deltat.preds|Predictions}\n * @constant {Array}\n */\n var delta = [124, 115, 106, 98, 91, 85, 79, 74, 70, 65, 62, 58, 55, 53,\n 50, 48, 46, 44, 42, 40, 37, 35, 33, 31, 28, 26, 24, 22, 20, 18, 16,\n 14, 13, 12, 11, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11,\n 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14,\n 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17,\n 17, 17, 16, 16, 15, 14, 13.7, 13.1, 12.7, 12.5, 12.5, 12.5, 12.5,\n 12.5, 12.5, 12.3, 12, 11.4, 10.6, 9.6, 8.6, 7.5, 6.6, 6, 5.7, 5.6,\n 5.7, 5.9, 6.2, 6.5, 6.8, 7.1, 7.3, 7.5, 7.7, 7.8, 7.88, 7.54, 6.4,\n 5.41, 2.92, 1.61, -1.02, -2.69, -3.64, -4.71, -5.4, -5.2, -5.46, -\n 5.63, -5.8, -5.87, -6.19, -6.44, -6.09, -4.66, -2.72, -0.02, 2.64,\n 5.37, 7.75, 10.46, 13.36, 16.01, 18.24, 20.25, 21.16, 22.41, 23.49,\n 23.86, 24.34, 24.02, 23.87, 23.86, 23.73, 23.96, 24.33, 25.3, 26.24,\n 27.28, 28.25, 29.15, 29.97, 30.72, 31.35, 32.18, 33.15, 34, 35.03,\n 36.54, 38.29, 40.18, 42.23, 44.94, 46.94, 49.03, 50.93, 52.53, 54.05,\n 55.08, 56.05, 57.18, 58.69, 60.35, 61.95, 63.23, 63.95, 64.39, 64.63,\n 64.97, 65.6, 66.2, 66.74, 67.45, 68.26\n ];\n\n /**\n * Dixaines en toutes lettres.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var dixainesEnLettres = ['', 'dix', 'vingt', 'trente', 'quarante',\n 'cinquante', 'soixante', 'soixante', 'quatre-vingt', 'quatre-vingt'\n ];\n\n /**\n * Jours juliens des équinoxes avant l'an 1000.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|JDE0tab1000}\n * @constant {Array}\n */\n var jde0Tab1000 = [\n [1721139.29189, 365242.13740, 0.06134, 0.00111, -0.00071],\n [1721233.25401, 365241.72562, -0.05323, 0.00907, 0.00025],\n [1721325.70455, 365242.49558, -0.11677, -0.00297, 0.00074],\n [1721414.39987, 365242.88257, -0.00769, -0.00933, -0.00006]\n ];\n\n /**\n * Nombre de jours juliens correspondants à l'an 1 gregorien.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|GREGORIAN_EPOCH}\n * @constant {Number}\n * @example\n * jjVersGregorien(1721425.5); // [1, 1, 1]\n * jjVersGregorien(jjAn1Gregorien); // [1, 1, 1]\n */\n var jjAn1Gregorien = 1721425.5;\n\n /**\n * Nombre de jours juliens correspondants à l'an 2000 grégorien.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|J2000}\n * @constant {Number}\n * @example\n * jjVersGregorien(2451545.0); // [2000, 1, 1]\n * jjVersGregorien(jjAn2000Gregorien); // [2000, 1, 1]\n */\n var jjAn2000Gregorien = 2451545.0;\n\n /**\n * Nombre de jours juliens correspondants à l'adoption du calendrier\n * républicain dans le journal officiel lors de la Commune de Paris\n * en 1871.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Number}\n * @example\n * jjVersGregorien(2404504.5); // [1871, 3, 18]\n * jjVersGregorien(jjDebutCommuneDeParis); // [1871, 3, 18]\n * jjVersRepublicain(2404504.5); // [79, 6, 3, 7]\n * jjVersRepublicain(jjDebutCommuneDeParis); // [79, 6, 3, 7]\n */\n var jjDebutCommuneDeParis = 2404504.5;\n\n /**\n * Nombre de jours juliens correspondants à l'adoption du calendrier\n * grégorien.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte.js|Projet sur GitHub}\n * @constant {Number}\n * @example\n * jjVersGregorien(2299160.5); // [1582, 10, 15]\n * jjVersGregorien(jjDebutGregorien); // [1582, 10, 15]\n * jjVersJulien(2299160.5); // [1582, 10, 5]\n * jjVersJulien(jjDebutGregorien); // [1582, 10, 5]\n */\n var jjDebutGregorien = 2299160.5;\n\n /**\n * Nombre de jours juliens correspondants à l'an 1 républicain.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link fourmilab.ch/documents/calendar/|FRENCH_REVOLUTIONARY_EPOCH}\n * @constant {Number}\n * @example\n * jjVersGregorien(2375839.5); // [1792, 9, 22]\n * jjVersGregorien(jjDebutRepublicain); // [1792, 9, 22]\n * jjVersRepublicain(2375839.5); // [1, 1, 1, 1]\n * jjVersRepublicain(jjDebutRepublicain); // [1, 1, 1, 1]\n */\n var jjDebutRepublicain = 2375839.5;\n\n /**\n * Nombre de jours juliens correspondants à l'abrogation du calendrier\n * républicain dans le journal officiel lors de la Commune de Paris\n * en 1871.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Number}\n * @example\n * jjVersGregorien(2404575.5); // [1871, 5, 28]\n * jjVersGregorien(jjFinCommuneDeParis); // [1871, 5, 28]\n * jjVersRepublicain(2404575.5); // [79, 9, 1, 8]\n * jjVersRepublicain(jjFinCommuneDeParis); // [79, 9, 1, 8]\n */\n var jjFinCommuneDeParis = 2404575.5;\n\n /**\n * Nombre de jours juliens correspondants à l'abrogation du calendrier\n * républicain.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Number}\n * @example\n * jjVersGregorien(2380686.5); // [1805, 12, 31]\n * jjVersGregorien(jjFinRepublicain); // [1805, 12, 31]\n * jjVersRepublicain(2380686.5); // [14, 4, 1, 10]\n * jjVersRepublicain(jjFinRepublicain); // [14, 4, 1, 10]\n */\n var jjFinRepublicain = 2380686.5;\n\n /**\n * Nom des Jours Grégoriens et abbréviations courantes,\n * sur 1, 2 et 3 caractères.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var jourGregorien = [\n ['Dimanche', 'Dim', 'Dim', 'Di', 'D'],\n ['Lundi', 'Lundi', 'Lun', 'Lu', 'L'],\n ['Mardi', 'Mardi', 'Mar', 'Ma', 'M'],\n ['Mercredi', 'Mercr', 'Mer', 'Me', 'M'],\n ['Jeudi', 'Jeudi', 'Jeu', 'Je', 'J'],\n ['Vendredi', 'Vendr', 'Ven', 'Ve', 'V'],\n ['Samedi', 'Sam', 'Sam', 'Sa', 'S']\n ];\n\n /**\n * Nom des Mois Grégoriens et abbréviations courantes,\n * sur 1, 2 et 3 caractères.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var moisGregorien = [\n ['Janvier', 'Janv', 'Jan', 'Jr', 'J'],\n ['Février', 'Févr', 'Fév', 'Fr', 'F'],\n ['Mars', 'Mars', 'Mar', 'Ms', 'M'],\n ['Avril', 'Avr', 'Avr', 'Al', 'A'],\n ['Mai', 'Mai', 'Mai', 'Mi', 'M'],\n ['Juin', 'Juin', 'Jun', 'Jn', 'J'],\n ['Juillet', 'Juill', 'Jul', 'Jt', 'J'],\n ['Août', 'Août', 'Aoû', 'At', 'A'],\n ['Septembre', 'Sept', 'Sep', 'Se', 'S'],\n ['Octobre', 'Oct', 'Oct', 'Oe', 'O'],\n ['Novembre', 'Nov', 'Nov', 'Ne', 'N'],\n ['Décembre', 'Déc', 'Déc', 'De', 'D']\n ];\n\n /**\n * Expressions régulières pour convertir les mois gregoriens.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var regexpGregorien = [{\n regexp: 'jan(v)?(\\\\.)?(ier)?',\n replace: '/1/'\n }, {\n regexp: 'Jer',\n replace: '/1/'\n }, {\n regexp: 'f(é|e)v(r)?(\\\\.)?(ier)?',\n replace: '/2/'\n }, {\n regexp: 'Fer',\n replace: '/2/'\n }, {\n regexp: 'mar(s|\\\\.)?',\n replace: '/3/'\n }, {\n regexp: 'avr(il|\\\\.)?',\n replace: '/4/'\n }, {\n regexp: 'mai',\n replace: '/5/'\n }, {\n regexp: 'ju(i)?n',\n replace: '/6/'\n }, {\n regexp: 'ju(i)?l(\\\\.|l)?(\\\\.)?(et)?',\n replace: '/7/'\n }, {\n regexp: 'Jet',\n replace: '/7/'\n }, {\n regexp: 'ao(u|û)(t|\\\\.)?',\n replace: '/8/'\n }, {\n regexp: 'sep(t)?(\\\\.)?(embre)?',\n replace: '/9/'\n }, {\n regexp: '7bre',\n replace: '/9/'\n }, {\n regexp: 'oct(obre|\\\\.)?',\n replace: '/10/'\n }, {\n regexp: '8bre',\n replace: '/10/'\n }, {\n regexp: 'nov(embre|\\\\.)?',\n replace: '/11/'\n }, {\n regexp: '9bre',\n replace: '/11/'\n }, {\n regexp: 'd(é|e)c(embre|\\\\.)?',\n replace: '/12/'\n }, {\n regexp: 'Xbre',\n replace: '/12/'\n }, {\n regexp: '10bre',\n replace: '/12/'\n }, {\n regexp: '[^-()\\\\d/*+.]',\n replace: ''\n }];\n\n /**\n * Expressions régulières pour convertir les mois républicains.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var regexpRepublicain = [{\n regexp: 'vend(é|e)miaire',\n replace: '/1/'\n }, {\n regexp: 'brumaire',\n replace: '/2/'\n }, {\n regexp: 'frimaire',\n replace: '/3/'\n }, {\n regexp: 'niv(ô|o)se',\n replace: '/4/'\n }, {\n regexp: 'pluvi(ô|o)se',\n replace: '/5/'\n }, {\n regexp: 'vent(ô|o)se',\n replace: '/6/'\n }, {\n regexp: 'germinal',\n replace: '/7/'\n }, {\n regexp: 'flor(é|e)al',\n replace: '/8/'\n }, {\n regexp: 'prairial',\n replace: '/9/'\n }, {\n regexp: 'messidor',\n replace: '/10/'\n }, {\n regexp: 'thermidor',\n replace: '/11/'\n }, {\n regexp: 'fructidor',\n replace: '/12/'\n }, {\n regexp: 'san(s-)?culottide(s)?',\n replace: '/13/'\n }, {\n regexp: 'jour(s)?\\\\scompl(é|e)mentaire(s)?',\n replace: '/13/'\n }, {\n regexp: 'd(é|e)cade\\\\s(\\\\d){1,2}',\n replace: ''\n }, {\n regexp: '[^-()\\\\d/*+.]',\n replace: ''\n }];\n\n /**\n * Nombre de jours dans un siècle julien.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|JulianCentury}\n * @constant {Number}\n */\n var siecleJulien = 36525.0;\n\n /**\n * Termes périodiques pour obtenir des temps réels.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @see {@link http://fourmilab.ch/documents/calendar/|EquinoxpTerms}\n * @constant {Array}\n */\n var termesPerEquinoxes = [485, 324.96, 1934.136, 203, 337.23, 32964.467,\n 199, 342.08, 20.186, 182, 27.85, 445267.112, 156, 73.14, 45036.886,\n 136, 171.52, 22518.443, 77, 222.54, 65928.934, 74, 296.72, 3034.906,\n 70, 243.58, 9037.513, 58, 119.81, 33718.147, 52, 297.17, 150.678, 50,\n 21.02, 2281.226, 45, 247.54, 29929.562, 44, 325.15, 31555.956, 29,\n 60.93, 4443.417, 18, 155.12, 67555.328, 17, 288.79, 4562.452, 16,\n 198.04, 62894.029, 14, 199.76, 31436.921, 12, 95.39, 14577.848, 12,\n 287.11, 31931.756, 12, 320.81, 34777.259, 9, 227.73, 1222.114, 8,\n 15.45, 16859.074\n ];\n\n /**\n * Unités en toutes lettres.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @constant {Array}\n */\n var unitesEnLettres = ['', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six',\n 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze',\n 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf'\n ];\n\n /**\n * Pour convertir des degrés en radians.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|dtr}\n * @param {Number} d - Angle en degrés\n * @return {Number} Angle en radians\n * @example\n * degresVersRadians(90); // 1.5707963267948966\n */\n var degresVersRadians = function () {\n function degresVersRadians(d) {\n var result = d * Math.PI / 180.0;\n\n return result;\n }\n\n return degresVersRadians;\n }();\n\n /**\n * Pour normaliser un angle entre 0 et 360 degrés.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|fixangle}\n * @param {Number} a - Angle en degrés\n * @return {Number} Angle entre 0 et 360 degrés\n * @example\n * normaliserDegres(375); // 15\n */\n var normaliserDegres = function () {\n function normaliserDegres(a) {\n var result = a - 360.0 * Math.floor(a / 360.0);\n\n return result;\n }\n\n return normaliserDegres;\n }();\n\n /**\n * Pour convertir des radians en degrés.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|rtd}\n * @param {Number} r - Angle en radians\n * @return {Number} Angle en degrés\n * @example\n * radiansVersDegres(1.5707963267948966); // 90\n */\n var radiansVersDegres = function () {\n function radiansVersDegres(r) {\n var result = r * 180.0 / Math.PI;\n\n return result;\n }\n\n return radiansVersDegres;\n }();\n\n /**\n * Pour calculer les restes avec des nombres décimaux.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|mod}\n * @param {Number} a - Nombre à diviser\n * @param {Number} b - Diviseur\n * @return {Number} Reste de a par b\n * @example\n * reste(3,2); // 1\n */\n var reste = function () {\n function reste(a, b) {\n var result = a - b * Math.floor(a / b);\n\n return result;\n }\n\n return reste;\n }();\n\n /**\n * Pour calculer le sinus d'un angle en degrés.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|dsin}\n * @param {Number} d - Angle en degrés\n * @return {Number} Sinus de l'angle en degrés\n * @example\n * sinus(90); // 1\n */\n var sinus = function () {\n function sinus(d) {\n var result = Math.sin(degresVersRadians(d));\n\n return result;\n }\n\n return sinus;\n }();\n\n /**\n * Pour calculer le cosinus d'un angle en degrés.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|dcos}\n * @param {Number} d - Angle en degrés\n * @return {Number} Cosinus de l'angle en degrés\n * @example\n * cosinus(0); // 1\n */\n var cosinus = function () {\n function cosinus(d) {\n var result = Math.cos(degresVersRadians(d));\n\n return result;\n }\n\n return cosinus;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens d'une equinoxe ou d'un solstice.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|equinox}\n * @param {Number} an - Année\n * @param {Number} item - L'item à calculer :\n * 0 = Equinoxe de Mars,\n * 1 = Solstice de Juin,\n * 2 = Equinoxe de Septembre,\n * 3 = Solstice de Décembre\n * @return {Number} Le nombre de jours juliens pour l'equinoxe ou solstice\n * @example\n * equinoxe(2015,0); // 2457102.4488504543\n */\n var equinoxe = function () {\n function equinoxe(an, item) {\n var i = void 0;\n var j = void 0;\n var Jde0tab = void 0;\n var S = void 0;\n var Y = void 0;\n\n if (an < 1000) {\n Jde0tab = jde0Tab1000;\n Y = an / 1000;\n } else {\n Jde0tab = jde0Tab2000;\n Y = (an - 2000) / 1000;\n }\n var Jde0 = Jde0tab[item][0] + Jde0tab[item][1] * Y + Jde0tab[item][\n 2\n ] * Math.pow(Y, 2) + Jde0tab[item][3] * Math.pow(Y, 3) + Jde0tab[\n item][4] * Math.pow(Y, 4);\n var T = (Jde0 - 2451545.0) / 36525;\n var W = 35999.373 * T - 2.47;\n var deltaL = 1 + 0.0334 * cosinus(W) + 0.0007 * cosinus(2 * W);\n\n S = 0;\n for (i = j = 0; i < 24; i++) {\n S += termesPerEquinoxes[j] * cosinus(termesPerEquinoxes[j + 1] +\n termesPerEquinoxes[j + 2] * T);\n j += 3;\n }\n\n return Jde0 + S * 0.00001 / deltaL;\n }\n\n return equinoxe;\n }();\n\n /**\n * Pour calculer la différence entre temps terrestre et temps universel,\n * en secondes.\n * @access private\n * @author John Walker & Gilles Toubiana\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|deltat} |\n * {@link http://eclipse.gsfc.nasa.gov/SEcat5/deltatpoly.html|Expressions} |\n * {@link http://www.projectpluto.com/dt.htm|Formules}\n * @param {Number} an - Année\n * @return {Number} Différence entre temps terrestre et temps universel,\n * en secondes\n * @example\n * deltaT(2015); // 67.855\n */\n\n var deltaT = function () {\n function deltaT(an) {\n var dt = void 0;\n var maxindex = 1618 + delta.length * 2;\n\n if (an >= 1620 && an < maxindex) {\n var i = (an - 1620) / 2;\n\n dt = (an - 1620) % 2 ? (delta[i - 0.5] + delta[i + 0.5]) / 2 :\n delta[i];\n } else {\n var t = (an - 2000) / 100;\n\n if (an === maxindex) {\n dt = delta[delta.length - 1];\n } else if (an < 948) {\n dt = 2177 + 497 * t + 44.1 * t * t;\n } else {\n dt = 102 + 102 * t + 25.3 * t * t;\n if (an > 2000 && an < 2100) {\n dt += 0.37 * (an - 2100);\n }\n }\n }\n\n return dt;\n }\n\n return deltaT;\n }();\n\n /**\n * Pour calculer l'obliquité de l'écliptique pour un nombre de jours juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|obliqeq}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Number} Obliquité de l'écliptique\n * @example\n * obliquiteEcliptique(2457333.5); // 23.437230456425635\n */\n var obliquiteEcliptique = function () {\n function obliquiteEcliptique(jj) {\n var oTerms = [-4680.93, -1.55, 1999.25, -51.38, -249.67, -39.05,\n 7.12, 27.87, 5.79, 2.45\n ];\n var u = (jj - jjAn2000Gregorien) / (siecleJulien * 100);\n var v = u;\n var eps = 23 + 26 / 60.0 + 21.448 / 3600.0;\n var i = void 0;\n\n if (Math.abs(u) < 1.0) {\n for (i = 0; i < 10; i++) {\n eps += oTerms[i] / 3600.0 * v;\n v *= u;\n }\n }\n\n return eps;\n }\n\n return obliquiteEcliptique;\n }();\n\n /**\n * Pour calculer la position du soleil.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|sunpos}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} Position du soleil : Angles en degrés.\n * [0] Longitude moyenne géométrique du Soleil,\n * [1] Anomalie moyenne du Soleil,\n * [2] Excentricité de l'orbite de la Terre,\n * [3] Équation du centre du Soleil,\n * [4] Longitude réelle du Soleil,\n * [5] Anomalie réelle du Soleil,\n * [6] Rayon vecteur du Soleil,\n * [7] Longitude apparente du Soleil pour une equinoxe,\n * [8] Ascension réelle du Soleil,\n * [9] Déclinaison réelle du Soleil,\n * [10] Ascension apparente du Soleil,\n * [11] Déclinaison apparente du Soleil\n * @example\n * positionSoleil(2457333.5); //[225.88621192607388, 302.6763369039327,\n * // 0.016701968773317977, -1.6291396906692837, 224.2570722354046,\n * // 301.0471972132634, 0.9911840619194138, 224.25125854183977,\n * // 221.79690960202632, -16.115660127694625, 221.79168151491098,\n * // -16.112230690435588]\n */\n var positionSoleil = function () {\n function positionSoleil(jj) {\n var T = (jj - jjAn2000Gregorien) / siecleJulien;\n var t2 = T * T;\n var l0 = normaliserDegres(280.46646 + 36000.76983 * T + 0.0003032 *\n t2);\n var M = normaliserDegres(357.52911 + 35999.05029 * T + -0.0001537 *\n t2);\n var e = 0.016708634 + -0.000042037 * T + -0.0000001267 * t2;\n var C = (1.914602 + -0.004817 * T + -0.000014 * t2) * sinus(M) + (\n 0.019993 - 0.000101 * T) * sinus(2 * M) + 0.000289 * sinus(3 *\n M);\n var sunLong = l0 + C;\n var sunAnomaly = M + C;\n var sunR = 1.000001018 * (1 - e * e) / (1 + e * cosinus(sunAnomaly));\n var Omega = 125.04 - 1934.136 * T;\n var Lambda = sunLong + -0.00569 + -0.00478 * sinus(Omega);\n var epsilon0 = obliquiteEcliptique(jj);\n var epsilon = epsilon0 + 0.00256 * cosinus(Omega);\n var Alpha = normaliserDegres(radiansVersDegres(Math.atan2(cosinus(\n epsilon0) * sinus(sunLong), cosinus(sunLong))));\n var Delta = radiansVersDegres(Math.asin(sinus(epsilon0) * sinus(\n sunLong)));\n var AlphaApp = normaliserDegres(radiansVersDegres(Math.atan2(\n cosinus(epsilon) * sinus(Lambda), cosinus(Lambda))));\n var DeltaApp = radiansVersDegres(Math.asin(sinus(epsilon) * sinus(\n Lambda)));\n\n return [l0, M, e, C, sunLong, sunAnomaly, sunR, Lambda, Alpha,\n Delta, AlphaApp, DeltaApp\n ];\n }\n\n return positionSoleil;\n }();\n\n /**\n * Pour calculer la nutation en longitude (deltaPsi),\n * et obliquité (deltaEpsilon) pour un nombre de jours juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|nutation}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} Nutation en [0] longitude et [1] obliquité en degrés\n * @example\n * nutation(2457333.5);\n * // [-0.000514859690208824, -0.0025586654864005456]\n */\n var nutation = function () {\n function nutation(jj) {\n var ta = [];\n var t = (jj - 2451545.0) / 36525.0;\n var t2 = t * t;\n var t3 = t * t2;\n var dp = 0;\n var de = 0;\n\n ta[0] = degresVersRadians(297.850363 + 445267.11148 * t - 0.0019142 *\n t2 + t3 / 189474.0);\n ta[1] = degresVersRadians(357.52772 + 35999.05034 * t - 0.0001603 *\n t2 - t3 / 300000.0);\n ta[2] = degresVersRadians(134.96298 + 477198.867398 * t + 0.0086972 *\n t2 + t3 / 56250.0);\n ta[3] = degresVersRadians(93.27191 + 483202.017538 * t - 0.0036825 *\n t2 + t3 / 327270);\n ta[4] = degresVersRadians(125.04452 - 1934.136261 * t + 0.0020708 *\n t2 + t3 / 450000.0);\n for (var i = 0; i < 5; i++) {\n ta[i] -= 2 * Math.PI * Math.floor(ta[i] / (2 * Math.PI));\n }\n var to10 = t / 10.0;\n\n for (var _i = 0; _i < 63; _i++) {\n var ang = 0;\n\n for (var j = 0; j < 5; j++) {\n if (argNutMult[_i * 5 + j] !== 0) {\n ang += argNutMult[_i * 5 + j] * ta[j];\n }\n }\n dp += (argNutCoeff[_i * 4 + 0] + argNutCoeff[_i * 4 + 1] * to10) *\n Math.sin(ang);\n de += (argNutCoeff[_i * 4 + 2] + argNutCoeff[_i * 4 + 3] * to10) *\n Math.cos(ang);\n }\n\n return [dp / (3600.0 * 10000.0), de / (3600.0 * 10000.0)];\n }\n\n return nutation;\n }();\n\n /**\n * Pour calculer l'équation du temps pour un moment précis.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|equationOfTime}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Number} Équation du temps pour une fraction de jour\n * @example\n * equationDuTemps(2457333.5); // 0.002839122270852552\n */\n var equationDuTemps = function () {\n function equationDuTemps(jj) {\n var tau = (jj - jjAn2000Gregorien) / (siecleJulien * 10);\n var l0 = normaliserDegres(280.4664567 + 360007.6982779 * tau +\n 0.03032028 * Math.pow(tau, 2) + Math.pow(tau, 3) / 49931 + -(\n Math.pow(tau, 4) / 15300) + -(Math.pow(tau, 5) / 2000000));\n var alpha = positionSoleil(jj)[10];\n var deltaPsi = nutation(jj)[0];\n var epsilon = obliquiteEcliptique(jj) + nutation(jj)[1];\n var E = l0 + -0.0057183 + -alpha + deltaPsi * cosinus(epsilon);\n\n E -= 20.0 * Math.floor(E / 20.0);\n\n return E / (24 * 60);\n }\n\n return equationDuTemps;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens et la fraction de l'équinoxe\n * de septembre au méridien de Paris pour une année grégorienne.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|equinoxe_a_paris}\n * @param {Number} an - Année grégorienne\n * @return {Number} Nombre de jours juliens et fraction de l'équinoxe\n * de septembre au méridien de Paris pour une année grégorienne\n * @example\n * fractionEquinoxe(2015); // 2457288.855100263\n */\n var fractionEquinoxe = function () {\n function fractionEquinoxe(an) {\n var equJED = equinoxe(an, 2);\n var equJD = equJED - deltaT(an) / (24 * 60 * 60);\n var equAPP = equJD + equationDuTemps(equJED);\n var dtParis = (2 + 20 / 60.0 + 15 / (60 * 60.0)) / 360;\n\n return equAPP + dtParis;\n }\n\n return fractionEquinoxe;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens correspondant à l'équinoxe\n * de septembre au méridien de Paris, pour une année grégorienne.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|paris_equinoxe_jd}\n * @param {Number} an - Année grégorienne\n * @return {Number} Nombre de jours juliens pour l'équinoxe de septembre\n * @example\n * equinoxeAParis(2015); // 2457288.5\n */\n var equinoxeAParis = function () {\n function equinoxeAParis(an) {\n var ep = fractionEquinoxe(an);\n\n return Math.floor(ep - 0.5) + 0.5;\n }\n\n return equinoxeAParis;\n }();\n\n /**\n * Pour déterminer si une année grégorienne est bissextile.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|leap_gregorian}\n * @param {Number} an - Année grégorienne\n * @return {Boolean} Est-ce une année bissextile ?\n * @example\n * gregorienBissextile(2012); // true\n */\n var gregorienBissextile = function () {\n function gregorienBissextile(an) {\n var result = an % 4 === 0 && !(an % 100 === 0 && an % 400 !== 0);\n\n return result;\n }\n\n return gregorienBissextile;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens (jj) à partir d'une date\n * grégorienne.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|gregorian_to_jd}\n * @param {Number} an - Année grégorienne\n * @param {Number} mois - Mois grégorien\n * @param {Number} jour - Jour grégorien\n * @return {Number} Nombre de jours juliens\n * @example\n * gregorienVersJj(2015,11,7); // 2457333.5\n */\n var gregorienVersJj = function () {\n function gregorienVersJj(an, mois, jour) {\n var anneeBissextile = gregorienBissextile(an) ? -1 : -2;\n\n return jjAn1Gregorien - 1 + 365 * (an - 1) + Math.floor((an - 1) /\n 4) + -Math.floor((an - 1) / 100) + Math.floor((an - 1) / 400) +\n Math.floor((367 * mois - 362) / 12 + (mois <= 2 ? 0 :\n anneeBissextile) + jour);\n }\n\n return gregorienVersJj;\n }();\n\n /**\n * Pour calculer une date grégorienne à partir du nombre de jours juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|jd_to_gregorian}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} [0] Année, [1] Mois et [2] Jour grégorien\n * @example\n * jjVersGregorien(2457333.5); // [2015, 11, 7]\n */\n var jjVersGregorien = function () {\n function jjVersGregorien(jj) {\n var wjd = Math.floor(jj - 0.5) + 0.5;\n var depoch = wjd - jjAn1Gregorien;\n var quadricent = Math.floor(depoch / 146097);\n var dqc = reste(depoch, 146097);\n var cent = Math.floor(dqc / 36524);\n var dcent = reste(dqc, 36524);\n var quad = Math.floor(dcent / 1461);\n var dquad = reste(dcent, 1461);\n var yindex = Math.floor(dquad / 365);\n var an = quadricent * 400 + cent * 100 + quad * 4 + yindex;\n var anneeBissextile = gregorienBissextile(an) ? 1 : 2;\n\n if (!(cent === 4 || yindex === 4)) an++;\n var yearday = wjd - gregorienVersJj(an, 1, 1);\n var leapadj = wjd < gregorienVersJj(an, 3, 1) ? 0 : anneeBissextile;\n var mois = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n var jour = wjd - gregorienVersJj(an, mois, 1) + 1;\n\n return [an, mois, jour];\n }\n\n return jjVersGregorien;\n }();\n\n /**\n * Pour convertir en nombre entier positif.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} num - le nombre à convertir\n * @return {Number} Le nombre entier positif\n * @example\n * absInt(-23.45); // 23\n */\n var absInt = function () {\n function absInt(num) {\n var result = Math.abs(parseInt(num, 10));\n\n return result;\n }\n\n return absInt;\n }();\n\n /**\n * Pour calculer l'année républicaine correspondant à un nombre de jours\n * juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link fourmilab.ch/documents/calendar/|annee_da_la_revolution}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} [0] An républicain,\n * [1] Nombre de jours juliens pour l'équinoxe de l'année républicaine\n * @example\n * anRepublicain(2379902.5); // [12, 2379857.5]\n */\n var anRepublicain = function () {\n function anRepublicain(jj) {\n var guess = jjVersGregorien(jj)[0] - 2;\n var lasteq = equinoxeAParis(guess);\n\n while (lasteq > jj) {\n guess--;\n lasteq = equinoxeAParis(guess);\n }\n\n var nexteq = lasteq - 1;\n\n while (!(lasteq <= jj && jj < nexteq)) {\n lasteq = nexteq;\n guess++;\n nexteq = equinoxeAParis(guess);\n }\n var adr = Math.round((lasteq - jjDebutRepublicain) / anneeTropique) +\n 1;\n\n return [adr, lasteq];\n }\n\n return anRepublicain;\n }();\n\n /**\n * Pour convertir des chiffres arabes en chiffres romains.\n * @access private\n * @author Iván Montes\n * @since 0.0.1\n * @license unknown\n * @see {@link http://blog.stevenlevithan.com/?p=65#comment-16107|Blog}\n * @param {Number} arabe - Chiffre arabe\n * @return {String} Chiffre romain\n * @example\n * arabeVersRomain(2012); // 'MMXII'\n */\n var arabeVersRomain = function () {\n function arabeVersRomain(arabe) {\n var lookup = {\n M: 1000,\n CM: 900,\n D: 500,\n CD: 400,\n C: 100,\n XC: 90,\n L: 50,\n XL: 40,\n X: 10,\n IX: 9,\n V: 5,\n IV: 4,\n I: 1\n };\n var tempArabe = Math.abs(arabe);\n var sign = arabe < 0 ? '-' : '';\n var romain = '';\n var i = void 0;\n\n for (i in lookup) {\n if (lookup.hasOwnProperty(i)) {\n while (tempArabe >= lookup[i]) {\n romain += i;\n tempArabe -= lookup[i];\n }\n }\n }\n\n return sign + romain;\n }\n\n return arabeVersRomain;\n }();\n\n /**\n * Pour créer un objet date grégorien valide.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} jour - le jour du mois gregorien en chiffres\n * @param {Number} mois - le mois gregorien en chiffres\n * @param {Number} an - l'année gregorienne en chiffres\n * @return {Object} L'objet date valide\n * @example\n * dateValide(10,12,34); // Sun Dec 10 34 00:00:00 GMT+0100 (CET)\n */\n var dateValide = function () {\n function dateValide(jour, mois, an) {\n var resultat = new Date(an, mois - 1, jour);\n\n resultat.setFullYear(an);\n\n return resultat;\n }\n\n return dateValide;\n }();\n\n /**\n * Pour mettre en capitale le premier caractère d'une chaîne.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} str - la chaîne à modifier\n * @return {String} la chaîne avec le premier caractère en capitale\n * @example\n * initialeEnCapitale(\"vingt\"); // \"Vingt\"\n */\n var initialeEnCapitale = function () {\n function initialeEnCapitale(str) {\n var result = str.charAt(0).toUpperCase() + str.slice(1);\n\n return result;\n }\n\n return initialeEnCapitale;\n }();\n\n /**\n * Pour calculer une date julienne à partir du nombre de jours juliens.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link http://fourmilab.ch/documents/calendar/|jd_to_julian}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} [0] An, [1] Mois et [2] Jour julien\n * @example\n * jjVersJulien(2457346.5); // [2015,11,7]\n */\n var jjVersJulien = function () {\n function jjVersJulien(jj) {\n var b = Math.floor(jj + 0.5) + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var mois = Math.floor(e < 14 ? e - 1 : e - 13);\n var jour = b - d - Math.floor(30.6001 * e);\n var an = Math.floor(mois > 2 ? c - 4716 : c - 4715);\n\n if (an < 1) {\n an--;\n }\n\n return [an, mois, jour];\n }\n\n return jjVersJulien;\n }();\n\n /**\n * Pour calculer la date républicaine à partir du nombre de jours juliens,\n * les 4 ou 5 'sansculottides' sont considérés comme un 13e mois.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link fourmilab.ch/documents/calendar/|jd_to_french_revolutionary}\n * @param {Number} jj - Nombre de jours juliens\n * @return {Array} [0] An, [1] Mois, [2] Décade et [3] Jour républicain\n * @example\n * jjVersRepublicain(2379902.5); // [12, 2, 2, 6]\n */\n var jjVersRepublicain = function () {\n function jjVersRepublicain(jj) {\n var tempJj = Math.floor(jj) + 0.5;\n var adr = anRepublicain(tempJj);\n var an = adr[0];\n var equinox = adr[1];\n var mois = Math.floor((tempJj - equinox) / 30) + 1;\n var jour = (tempJj - equinox) % 30;\n var decade = Math.floor(jour / 10) + 1;\n\n jour = jour % 10 + 1;\n\n return [an, mois, decade, jour];\n }\n\n return jjVersRepublicain;\n }();\n\n /**\n * Pour convertir les nombres en toutes lettres.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} n - le nombre en chiffres\n * @param {String} [r] - par défaut, la réforme de 1990 est appliquée.\n * Pour utiliser l'ancienne notation, il suffit d'ajouter un argument.\n * @return {String} le nombre en toutes lettres\n * @example\n * nombreEnLettres(2371); // \"Deux-mille-trois-cent-soixante-et-onze\"\n * nombreEnLettres(1799,1); // \"Mille sept cent quatre-vingt-dix-neuf\"\n */\n var nombreEnLettres = function () {\n function nombreEnLettres(n, r) {\n var mill = void 0;\n var sepcen = void 0;\n var centl = void 0;\n var sepdix = void 0;\n var dixl = void 0;\n var sepunit = void 0;\n var unitl = void 0;\n var dizunit = void 0;\n var res = void 0;\n\n if (typeof n === 'number' && n > -10000 && n < 10000) {\n // UnitesEnLettres\n var u = unitesEnLettres;\n\n // DixainesEnLettres\n var v = dixainesEnLettres;\n\n // Saisie en valeur absolue\n var abs = Math.abs(n);\n var splus = r ? ' ' : '-';\n\n // Milliers\n var mil = parseInt(abs / 1000, 10);\n\n // Centaines\n var cent = parseInt(abs % 1000 / 100, 10);\n\n // Dixaines\n var dix = parseInt(abs % 100 / 10, 10);\n\n // Unités\n var unit = parseInt(abs % 10, 10);\n\n // Milliers\n if (mil === 1) {\n // Un seul millier\n mill = 'mille';\n } else if (mil > 1) {\n // Plusieurs milliers\n mill = '' + u[mil] + splus + 'mille';\n } else {\n // Pas de milliers\n mill = '';\n }\n\n // Centaines\n sepcen = mil > 0 ? splus : '';\n if (cent === 1) {\n // Une seule centaine\n centl = sepcen + 'cent';\n } else if (cent > 1 && dix === 0 && unit === 0) {\n // Plusieurs centaines\n centl = '' + sepcen + u[cent] + splus + 'cents';\n } else if (cent > 1) {\n // Plusieurs centaines suivies de dizaines\n centl = '' + sepcen + u[cent] + splus + 'cent';\n } else {\n // Pas de centaines\n centl = '';\n }\n\n // Dizaines et unités\n sepdix = mil + cent > 0 && dix + unit > 0 ? splus : '';\n if (dix > 0) {\n dixl = v[dix];\n\n // Splus\n sepunit = '-';\n } else {\n dixl = '';\n sepunit = '';\n }\n\n // Unités\n unitl = abs > 0 ? sepunit + u[unit] : 'zéro';\n\n // Multiples de 10\n if ((dix * 10 + unit) % 10 === 0) {\n unitl = '';\n }\n\n // Dix, soixante-dix, quatre-vingt-dix\n if ((dix === 1 || dix === 7 || dix === 9) && unit === 0) {\n dixl = dix === 1 ? 'dix' : v[dix] + '-dix';\n unitl = dix === 1 ? '' : u[unit];\n }\n\n // Onze+\n // soixante-et-onze+, quatre-vingt-onze+\n if ((dix === 1 || dix === 7 || dix === 9) && unit >= 1) {\n dixl = dix === 1 ? '' : v[dix];\n if (dix === 1) {\n sepunit = '';\n }\n unitl = dix === 7 && unit === 1 ? splus + 'et' + splus + u[10 +\n unit] : sepunit + u[10 + unit];\n }\n\n // Vingt-et-un, trente-et-un, quarante-et-un,\n // cinquante-et-un, soixante-et-un\n if (dix >= 2 && dix <= 6 && unit === 1) {\n unitl = splus + 'et' + splus + u[unit];\n }\n\n // Pluriel sur 80\n if (dix === 8 && unit === 0) {\n dixl = v[dix] + 's';\n unitl = '';\n }\n\n dizunit = sepdix + dixl + unitl;\n\n // Si nombre négatif\n var avjc = n < 0 ? 'Moins ' : '';\n\n res = abs > 0 ? initialeEnCapitale(avjc + mill + centl + dizunit) :\n 'Zéro';\n } else {\n res = '';\n }\n return res;\n }\n\n return nombreEnLettres;\n }();\n\n /**\n * Pour convertir les nombres en nombres ordinaux.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} n - le nombre en chiffres\n * @param {String} prem - le suffixe pour le chiffre 1\n * @param {String} exp - le suffixe pour les chiffres différents de 1\n * @return {String} le nombre ordinal\n * @example\n * nombreOrdinal(1,\"er\",\"e\"); // \"1er\"\n * nombreOrdinal(1,\"re\",\"e\"); // \"1re\"\n * nombreOrdinal(2,\"er\",\"e\"); // \"2e\"\n */\n var nombreOrdinal = function () {\n function nombreOrdinal(n, prem, exp) {\n var result = n === 1 || n === '1er' || n === '1re' ? '1' + prem : n +\n exp;\n\n return result;\n }\n\n return nombreOrdinal;\n }();\n\n /**\n * Pour convertir les nombres en toutes lettres en nombres ordinaux.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} saisie - le nombre en lettres\n * @param {String} [genre] - par défaut, le genre masculin est appliqué.\n * Pour utiliser le genre féminin, il suffit d'ajouter un argument.\n * @return {String} le nombre ordinal en lettres\n * @example\n * ordinauxEnLettres(\"Un\"); // \"Premier\"\n * ordinauxEnLettres(\"Un\", 1); // \"Première\"\n * ordinauxEnLettres(\"Deux\"); // \"Deuxième\"\n * ordinauxEnLettres(\"Vingt-trois\"); // \"Vingt-troisième\"\n */\n var ordinauxEnLettres = function () {\n function ordinauxEnLettres(saisie, genre) {\n var str = saisie.toString();\n var result = void 0;\n\n // Genre\n var prem = genre ? 'première' : 'premier';\n\n // Dernier caractère\n /* eslint-disable indent */\n switch (str.slice(-1)) {\n case 'o':\n case 't':\n case 'x':\n result = str + 'ième';\n break;\n case 'q':\n result = str + 'uième';\n break;\n case 'f':\n result = str.slice(0, str.length - 1) + 'vième';\n break;\n case 'e':\n result = str.slice(0, str.length - 1) + 'ième';\n break;\n case 's':\n result = str.slice(-2) === 'ts' ? str.slice(0, str.length - 1) +\n 'ième' : str + 'ième';\n break;\n case 'n':\n if (str.slice(-5) === 'et-un' || str.slice(-5) === 'et un') {\n result = str + 'ième';\n } else {\n result = str === 'Un' ? initialeEnCapitale(prem) : prem;\n }\n break;\n default:\n result = str;\n }\n\n /* eslint-enable indent */\n return result;\n }\n\n return ordinauxEnLettres;\n }();\n\n /**\n * Pour calculer le nombre de jours entre deux dates.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} j1 - le jour du mois de la première date en chiffres\n * @param {Number} m1 - le mois de la date de la première date en chiffres\n * @param {Number} a1 - l'année de la date de la première date en chiffres\n * @param {Number} j2 - le jour du mois de la deuxième date en chiffres\n * @param {Number} m2 - le mois de la date de la deuxième date en chiffres\n * @param {Number} a2 - l'année de la date de la deuxième date en chiffres\n * @return {Number} le nombre de jours entre les deux dates\n * @example\n * periodeEnJours(1, 1, 2016, 15, 1, 2016]); // 15\n * periodeEnJours(15, 1, 2016, 1, 1, 2016]); // 15\n * periodeEnJours(1, 1, 2016, 1, 1, 2016]); // 1\n */\n var periodeEnJours = function () {\n function periodeEnJours(j1, m1, a1, j2, m2, a2) {\n var date1 = dateValide(j1, m1, a1);\n var date2 = dateValide(j2, m2, a2);\n var debut = date2 > date1 ? date1 : date2;\n var fin = date2 > date1 ? date2 : date1;\n\n return Math.ceil((fin - debut) / (1000 * 60 * 60 * 24)) + 1;\n }\n\n return periodeEnJours;\n }();\n\n /**\n * Pour ajouter un préfixe de 0 à un nombre compris entre 1 et 9.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} n - le nombre à préfixer\n * @return {String} le nombre avec préfixe zéro\n * @example\n * prefixeZero(20); // 20\n * prefixeZero(9); // \"09\"\n * prefixeZero(0); // 0\n * prefixeZero(-4); // -4\n */\n var prefixeZero = function () {\n function prefixeZero(n) {\n var result = n < 10 && n > 0 ? '0' + n : n;\n\n return result;\n }\n\n return prefixeZero;\n }();\n\n /**\n * Pour convertir uniquement 'un' en nombre ordinal.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} saisie - le nombre en lettres\n * @param {String} [genre] - par défaut, le genre masculin est appliqué.\n * Pour utiliser le genre féminin, il suffit d'ajouter un argument.\n * @return {String} le nombre - ordinal ou non - en lettres\n * @example\n * premierOrdinalEnLettres(\"Un\"); // \"Premier\"\n * premierOrdinalEnLettres(\"Un\", 1); // \"Première\"\n * premierOrdinalEnLettres(\"Deux\"); // \"Deux\"\n * premierOrdinalEnLettres(\"Vingt-trois\"); // \"Vingt-trois\"\n */\n var premierOrdinalEnLettres = function () {\n function premierOrdinalEnLettres(saisie, genre) {\n var str = saisie.toString();\n var result = void 0;\n\n // Genre\n var prem = genre ? 'première' : 'premier';\n\n if (str === 'Un') {\n result = initialeEnCapitale(prem);\n } else if (str === 'un') {\n result = prem;\n } else {\n result = str;\n }\n\n return result;\n }\n\n return premierOrdinalEnLettres;\n }();\n\n /**\n * Pour remplacer en série avec un objet contenant des regex.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} texte - Le texte à modifier\n * @param {Object} regex - Les expressions régulières de remplacements\n * @param {String} options - Les options des expressions régulières\n * @return {String} Le texte modifié\n * @example\n * remplacements('Bonjour', {'jour': 'soir'}, 'gi');\n * // 'Bonsoir'\n */\n var remplacements = function () {\n function remplacements(texte, regex, options) {\n var resultat = regex.reduce(\n\n // jscs:disable\n function (data, item) {\n var result = data.replace(new RegExp(item.regexp, options),\n item.replace);\n\n return result;\n }, texte);\n\n // jscs:enable\n return resultat;\n }\n\n return remplacements;\n }();\n\n /**\n * Pour calculer le nombre de jours juliens à partir d'une date républicaine.\n * @access private\n * @author John Walker\n * @since 0.0.1\n * @license Domaine public\n * @see {@link fourmilab.ch/documents/calendar/|french_revolutionary_to_jd}\n * @param {Number} an - Année républicaine\n * @param {Number} mois - Mois républicain\n * @param {Number} decade - Décade républicaine\n * @param {Number} jour - Jour de la décade républicaine\n * @return {Number} Nombre de jours juliens\n * @example\n * republicainVersJj(12, 2, 2, 6); // 2379902.5\n */\n var republicainVersJj = function () {\n function republicainVersJj(an, mois, decade, jour) {\n var guess = jjDebutRepublicain + anneeTropique * (an - 1 - 1);\n var adr = [an - 1, 0];\n\n while (adr[0] < an) {\n adr = anRepublicain(guess);\n guess = adr[1] + (anneeTropique + 2);\n }\n\n return adr[1] + 30 * (mois - 1) + 10 * (decade - 1) + (jour - 1);\n }\n\n return republicainVersJj;\n }();\n\n /**\n * Pour convertir le jour du mois républicain en décade.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} rjmc - le jour du mois républicain\n * @return {Number} La décade républicaine\n * @example\n * rjmcVersRdc(28); // 3\n */\n var rjmcVersRdc = function () {\n function rjmcVersRdc(rjmc) {\n var resultat = Math.abs(parseInt(rjmc, 10) % 10) === 0 ? Math.abs(\n parseInt(rjmc / 10, 10)) : Math.abs(parseInt(rjmc / 10, 10) + 1);\n\n return resultat;\n }\n\n return rjmcVersRdc;\n }();\n\n /**\n * Pour convertir le jour du mois républicain en jour de la décade.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} rjmc - le jour du mois républicain\n * @return {Number} Le jour de la décade républicaine\n * @example\n * rjmcVersRjdc(28); // 8\n */\n var rjmcVersRjdc = function () {\n function rjmcVersRjdc(rjmc) {\n var resultat = Math.abs(parseInt(rjmc, 10) % 10) === 0 ? 10 : Math.abs(\n parseInt(rjmc, 10) % 10);\n\n return resultat;\n }\n\n return rjmcVersRjdc;\n }();\n\n /**\n * Pour convertir des chiffres romains en chiffres arabes.\n * @access private\n * @author Iván Montes\n * @since 0.0.1\n * @license unknown\n * @see {@link http://blog.stevenlevithan.com/?p=65#comment-16129|Blog}\n * @param {String} romain - Chiffre romain\n * @return {Number} Chiffre arabe\n * @example\n * romainVersArabe('MMXII'); // 2012\n */\n var romainVersArabe = function () {\n function romainVersArabe(romain) {\n var lookup = {\n I: 1,\n V: 5,\n X: 10,\n L: 50,\n C: 100,\n D: 500,\n M: 1000\n };\n var arabe = 0;\n var i = romain.length - 1;\n var tempRomain = romain.toUpperCase();\n\n for (i; i >= 0; i--) {\n if (lookup[tempRomain[i]] < lookup[tempRomain[i + 1]]) {\n arabe -= lookup[tempRomain[i]];\n } else {\n arabe += lookup[tempRomain[i]];\n }\n }\n\n return arabe;\n }\n\n return romainVersArabe;\n }();\n\n /**\n * Pour obtenir une saisie valide.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} saisie - La saisie d'une date\n * @param {Object} regexp - Un objet regexpRepublicain ou regexpGregorien\n * pour convertir les mois\n * @return {Array} La saisie valide\n * @example\n * saisieValide(saisie, regexpRepublicain);\n * saisieValide(saisie, regexpGregorien);\n */\n var saisieValide = function () {\n function saisieValide(saisie, regexp) {\n var tempSaisie = saisie;\n var u = void 0;\n\n // On remplace le texte restant par des chiffres arabes\n tempSaisie = remplacements(tempSaisie, regexp, 'gi').split(\n /[\\/\\.]+/gi);\n\n // Si il n'y a que l'année [1,1,ac]\n if (!tempSaisie[1] && !tempSaisie[2]) {\n if (tempSaisie[0].match(/\\d-/gi) || tempSaisie[0] === '') {\n tempSaisie[0] = u;\n } else {\n tempSaisie = [1, 1, tempSaisie[0]];\n }\n }\n\n // Si il n'y a que l'année et le mois [1,mc,ac]\n if (!tempSaisie[0] && tempSaisie[1] && tempSaisie[2]) {\n tempSaisie = [1, tempSaisie[1], tempSaisie[2]];\n }\n if (tempSaisie[1] && !tempSaisie[2]) {\n tempSaisie = [1, tempSaisie[0], tempSaisie[1]];\n }\n\n return tempSaisie;\n }\n\n return saisieValide;\n }();\n\n /**\n * Pour calculer le nombre de semaines depuis le début de l'année ou du mois.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.15\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {Number} j - le jour du mois grégorien\n * @param {Number} m - le mois grégorien\n * @param {Number} a - l'année grégorienne\n * @param {Number} [mois] - par défaut, le calcul correspond à l'année.\n * Pour calculer sur le mois en cours, il suffit d'ajouter un argument.\n * @return {Number} le nombre de semaines\n * @example\n * semaineComplete(14, 7, 2016); // 28\n * semaineComplete(14, 7, 2016, 1); // 2\n */\n var semaineComplete = function () {\n function semaineComplete(j, m, a, mois) {\n // Si l'argument mois existe, calcule depuis le début du mois.\n // sinon depuis le début de l'année\n var x = mois ? m : 1;\n var jourSemaine = dateValide(1, x, a).getDay();\n\n jourSemaine = jourSemaine === 0 ? 7 : jourSemaine;\n\n // Si le premier jour < jeudi (4), ajouter une semaine\n var n = jourSemaine <= 4 ? 1 : 0;\n var nombreSemaines = (periodeEnJours(1, x, a, j, m, a) - (8 -\n jourSemaine)) / 7;\n var semainesValides = nombreSemaines > parseInt(nombreSemaines, 10) ?\n parseInt(nombreSemaines, 10) + n + 1 : parseInt(nombreSemaines,\n 10) + n;\n\n return semainesValides;\n }\n\n return semaineComplete;\n }();\n\n /**\n * Pour convertir la saisie grégorienne ou julienne en Objet Jour.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} saisie - Saisie d'une date\n * @param {Boolean} limites - Par défaut, les résultats sont limités\n * aux périodes d'utilisation des calendriers. Seule la valeur `false`\n * permet de désactiver ces limites.\n * @return {Array} Les dates républicaines, grégoriennes et juliennes\n * @example\n * tabGregorien(saisie, this.limites);\n */\n var tabGregorien = function () {\n function tabGregorien(saisie, limites) {\n // Uniformisation de la saisie\n var iesaisie = saisie[0] === '/' ? '1' + saisie : saisie;\n var saisieGregorien = saisieValide(iesaisie, regexpGregorien);\n var tab = [];\n\n // Lorsque la date est valide [gjmc,gmc,gac]\n if (saisieGregorien[2] && saisieGregorien[0] < 32 && absInt(\n saisieGregorien[0]) !== 0 && saisieGregorien[1] < 13 &&\n saisieGregorien[1] !== '' && absInt(saisieGregorien[1]) !== 0) {\n tab[4] = gregorienVersJj(parseInt(saisieGregorien[2], 10), absInt(\n saisieGregorien[1]), absInt(saisieGregorien[0]));\n\n // Limitations gregorien/julien\n if (limites === true && tab[4] < jjDebutGregorien) {\n tab[5] = absInt(saisieGregorien[0]);\n tab[6] = absInt(saisieGregorien[1]);\n tab[7] = parseInt(saisieGregorien[2], 10);\n tab[8] = dateValide(tab[5], tab[6], tab[7]);\n } else {\n tab[0] = absInt(saisieGregorien[0]);\n tab[1] = absInt(saisieGregorien[1]);\n tab[2] = parseInt(saisieGregorien[2], 10);\n tab[3] = dateValide(tab[0], tab[1], tab[2]);\n var dateJulienne = jjVersJulien(tab[4]);\n\n tab[5] = dateJulienne[2];\n tab[6] = dateJulienne[1];\n tab[7] = dateJulienne[0];\n tab[8] = dateValide(tab[5], tab[6], tab[7]);\n }\n\n // Limitations republicain\n if (tab[4] >= jjDebutRepublicain && tab[4] <= jjFinRepublicain ||\n tab[4] >= jjDebutCommuneDeParis && tab[4] <=\n jjFinCommuneDeParis || limites === false) {\n var dateRepublicaine = jjVersRepublicain(tab[4]);\n\n tab = tab.concat([dateRepublicaine[3], dateRepublicaine[2], (\n dateRepublicaine[2] - 1) * 10 + dateRepublicaine[3],\n dateRepublicaine[1], dateRepublicaine[0]\n ]);\n }\n }\n\n return tab;\n }\n\n return tabGregorien;\n }();\n\n /**\n * Pour convertir la saisie républicaine en Objet Jour.\n * @access private\n * @author Gilles Toubiana\n * @since 0.0.1\n * @license MIT\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} saisie - Saisie d'une date\n * @param {Boolean} limites - Par défaut, les résultats sont limités\n * aux périodes d'utilisation des calendriers. Seule la valeur `false`\n * permet de désactiver ces limites.\n * @return {Array} Les dates républicaines, grégoriennes et juliennes\n * @example\n * tabRepublicain(saisie, this.limites);\n */\n var tabRepublicain = function () {\n function tabRepublicain(saisie, limites) {\n // On remplace les chiffres romains en chiffres arabes\n var saisieRepublicain = saisie.replace(\n /\\W?an\\s-?([-MDCLXVI]+)\\W?/gi,\n\n // jscs:disable\n function (x, p1) {\n var rva = romainVersArabe(p1);\n\n return x.match(/-/) ? ' -' + rva : ' ' + rva;\n });\n\n // jscs:enable\n var tab = [];\n\n // Uniformisation de la saisie\n saisieRepublicain = saisieValide(saisieRepublicain,\n regexpRepublicain);\n\n // Lorsque la date est valide [rjmc,rmc,rac]\n if (saisieRepublicain[2] && saisieRepublicain[0] < 30 && absInt(\n saisieRepublicain[0]) !== 0 && saisieRepublicain[1] < 14 &&\n absInt(saisieRepublicain[1]) !== 0) {\n tab[4] = republicainVersJj(parseInt(saisieRepublicain[2], 10),\n parseInt(saisieRepublicain[1], 10), rjmcVersRdc(\n saisieRepublicain[0]), rjmcVersRjdc(saisieRepublicain[0]));\n\n // Si jj (tab[4]) est dans les limites ou en illimité\n if (tab[4] >= jjDebutRepublicain && tab[4] <= jjFinRepublicain ||\n tab[4] >= jjDebutCommuneDeParis && tab[4] <=\n jjFinCommuneDeParis || limites === false) {\n var dateGregorienne = jjVersGregorien(tab[4]);\n var dateJulienne = jjVersJulien(tab[4]);\n\n tab[0] = dateGregorienne[2];\n tab[1] = dateGregorienne[1];\n tab[2] = dateGregorienne[0];\n tab[3] = dateValide(tab[0], tab[1], tab[2]);\n tab[5] = dateJulienne[2];\n tab[6] = dateJulienne[1];\n tab[7] = dateJulienne[0];\n tab[8] = dateValide(tab[5], tab[6], tab[7]);\n tab[9] = rjmcVersRjdc(saisieRepublicain[0]);\n tab[10] = rjmcVersRdc(saisieRepublicain[0]);\n tab[11] = absInt(saisieRepublicain[0]);\n tab[12] = parseInt(saisieRepublicain[1], 10);\n tab[13] = parseInt(saisieRepublicain[2], 10);\n }\n }\n\n return tab;\n }\n\n return tabRepublicain;\n }();\n\n /**\n * Pour convertir une saisie en objet JavaScript.\n * @memberof acte\n * @class\n * @chainable\n * @access public\n * @author Gilles Toubiana\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @param {String} saisie - Saisie d'une date grégorienne ou républicaine.\n * @param {Boolean} [limites=true] - Par défaut, les résultats sont limités\n * aux périodes d'utilisation des calendriers :
\n * - une saisie de date grégorienne sera considérée comme julienne avant\n * le 15/10/1582
\n * - une saisie de date républicaine ne sera valide que du 22/9/1792 au\n * 31/12/1805 (Période républicaine) et du 18/3/1871 au 28/5/1871\n * (Commune de Paris).
\n * La valeur `false` permet de désactiver ces limitations.\n * @since 0.0.1\n * @license MIT\n */\n acte.Jour = function () {\n function Jour(saisie, limites) {\n _classCallCheck(this, Jour);\n\n var tab = [];\n\n this.variables = this.variables || {};\n this.limites = limites !== false;\n\n // On détecte si c'est une date républicaine\n if (saisie.match(/\\W?an\\s-?([-MDCLXVI]+|\\d+)\\W?/gi)) {\n tab = tabRepublicain(saisie, this.limites);\n\n // Si ce n'est pas du républicain (donc grégorien ou julien)\n } else {\n tab = tabGregorien(saisie, this.limites);\n }\n\n // Ecriture de toutes les valeurs\n this.variables = {\n gregorien: {\n jm: tab[0],\n m: tab[1],\n a: tab[2],\n od: tab[3]\n },\n julien: {\n jj: tab[4],\n jm: tab[5],\n m: tab[6],\n a: tab[7],\n od: tab[8]\n },\n republicain: {\n jd: tab[9],\n d: tab[10],\n jm: tab[11],\n m: tab[12],\n a: tab[13]\n },\n limites: this.limites\n };\n }\n\n return Jour;\n }();\n\n /**\n * Pour formater une date grégorienne.\n * @memberof acte\n * @access public\n * @since 0.0.15\n * @author Gilles Toubiana\n * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub}\n * @license MIT\n * @param {String} [format='%Jp %Mlb %A'] - Le modèle de formatage :

\n * BALISES
\n * `%A` ou `%AN` - Année
\n * `%D`, `%DM` ou `%SM` - Décade/Semaine dans le mois
\n * `%J` ou `%JM` - Jour dans le mois
\n * `%JA` - Jour dans l'année
\n * `%JS` ou `%JD` - Jour de la Décade/Semaine
\n * `%M` ou `%MA` - Mois dans l'année
\n * `%S`, `%SA` ou `%DA` - Semaine/Décade dans l'année

\n * FILTRES
\n * `1` - mois ou jour sur 1 caractère
\n * `2` - mois ou jour sur 2 caractères
\n * `3` - mois ou jour sur 3 caractères
\n * `a` - mois ou jour en Abrégé
\n * `b` - en Bas de casse (minuscules)
\n * `c` ou `m` - en Capitales (Majuscules)
\n * `f` - Féminin de p (première ou 1re)
\n * `l` - chiffres en Lettres
\n * `o` - lettres ou chiffres en Ordinaux
\n * `p` - Premier ou 1er
\n * `r` - chiffres en Romains
\n * `v` - chiffres en lettres (Vieille notation)
\n * `z` - Zéro devant le chiffre
\n * @param {String} [erreur='Pas de correspondances.'] - Le message d'erreur\n * @param {Function} [rappel] - Une fonction de rappel\n * @return {String} La date grégorienne formatée\n * @example\n * new acte.Jour('1/1/1600').gregorien('%Jp %Mlb %A'); // '1er janvier 1600'\n */\n acte.Jour.prototype.gregorien = function () {\n function gregorien(format, erreur, rappel) {\n var frmt = format || '%Jp %Mlb %A';\n var err = erreur || 'Pas de correspondances.';\n var tvg = this.variables.gregorien;\n var resultat = void 0;\n\n if (tvg.od) {\n (function () {\n var obj = {\n A: tvg.a,\n D: semaineComplete(tvg.jm, tvg.m, tvg.a, 1),\n JA: periodeEnJours(1, 1, tvg.a, tvg.jm, tvg.m, tvg.a),\n J: tvg.jm,\n JS: tvg.od.getDay(),\n JSl: jourGregorien[tvg.od.getDay()],\n M: tvg.m,\n Ml: moisGregorien[tvg.m - 1],\n S: semaineComplete(tvg.jm, tvg.m, tvg.a, 0)\n };\n\n resultat = frmt.replace(/%[ADJMNSabcflmoprvz123]+/g,\n\n /* Sortir cette partie ? */\n // jscs:disable\n function (x) {\n // jscs:enable\n var ordinaux = void 0;\n var res = x;\n var chiffres = true;\n\n // BALISES\n if (x.match(/A/)) {\n if (x.match(/AN/)) {\n // AN = Année\n res = obj.A;\n } else {\n // A = Année\n res = obj.A;\n }\n }\n if (x.match(/J/)) {\n if (x.match(/JA/)) {\n // JA = Jour dans l'Année\n res = obj.JA;\n } else {\n // J = Jour dans le mois\n res = obj.J;\n }\n }\n if (x.match(/M/)) {\n if (x.match(/MA/)) {\n // MA = Mois dans l'Année\n res = obj.M;\n } else if (x.match(/JM/)) {\n // JM = Jour dans le Mois\n res = obj.J;\n } else {\n // M = Mois dans l'année\n res = obj.M;\n }\n }\n if (x.match(/D/)) {\n if (x.match(/DA/)) {\n // DA = Décade/Semaine dans l'Année\n res = obj.S;\n } else if (x.match(/DM/)) {\n // DM = Décade/Semaine dans le Mois\n res = obj.D;\n } else if (x.match(/JD/)) {\n // JD = Jour de la Décade/Semaine\n res = obj.JS;\n } else {\n // D = Décade/Semaine dans le mois\n res = obj.D;\n }\n }\n if (x.match(/S/)) {\n if (x.match(/SA/)) {\n // SA = Décade/Semaine dans l'année\n res = obj.S;\n } else if (x.match(/SM/)) {\n // SM = Décade/Semaine dans le mois\n res = obj.D;\n } else if (x.match(/JS/)) {\n // JS = Jour de la décade/semaine\n res = obj.JS;\n } else {\n // S = Décade/Semaine dans l'année\n res = obj.S;\n }\n }\n\n /* FILTRES */\n if (x.match(/r/)) {\n // - r = chiffres en Romains\n res = arabeVersRomain(res);\n }\n if (x.match(/z/)) {\n // - z = Zéro devant le chiffre\n res = prefixeZero(res);\n }\n if (x.match(/l|v/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MAl | Ml = Mois en Lettres\n res = obj.Ml[0];\n chiffres = false;\n } else if (x.match(/(JS|JD)/)) {\n // JSl | JDl = Jour de la Décade/Semaine en Lettres\n res = obj.JSl[0];\n chiffres = false;\n } else {\n if (x.match(/v/)) {\n // - v = chiffres en lettres (Vieille notation)\n res = nombreEnLettres(res, 1);\n } else {\n // - l = chiffres en Lettres\n res = nombreEnLettres(res);\n }\n ordinaux = true;\n }\n }\n if (x.match(/a/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MAa | Ma = Mois en Abrégé\n res = obj.Ml[1];\n } else if (x.match(/(JS|JD)/)) {\n // JSa | JDa = Jour de la Décade/Semaine en Abrégé\n res = obj.JSl[1];\n }\n }\n if (x.match(/3/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MA3 | M3 = Mois en Abrégé sur 3 caractères\n res = obj.Ml[2];\n } else if (x.match(/(JS|JD)/)) {\n // JS3 | JD3 = Jour de la Décade/Semaine en Abrégé\n // sur 3 caractères\n res = obj.JSl[2];\n }\n }\n if (x.match(/2/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MA2 | M2 = Mois en Abrégé sur 2 caractères\n res = obj.Ml[3];\n } else if (x.match(/(JS|JD)/)) {\n // JS2 | JD2 = Jour de la Décade/Semaine en Abrégé\n // sur 2 caractères\n res = obj.JSl[3];\n }\n }\n if (x.match(/1/)) {\n if (x.match(/[^JDS](MA|M)/)) {\n // MA1 | M1 = Mois en Abrégé sur 1 caractère\n res = obj.Ml[4];\n } else if (x.match(/(JS|JD)/)) {\n // JS1 | JD1 = Jour de la Décade/Semaine en Abrégé\n // sur 1 caractère\n res = obj.JSl[4];\n }\n }\n\n // ENCOURS bugs globaux avec chiffres et lettres\n // cf %Jrzl\n var lettres = res;\n\n // - o = lettres ou chiffres en Ordinaux\n if (x.match(/o/)) {\n if (ordinaux && x.match(/f/)) {\n res = ordinauxEnLettres(lettres, 1);\n } else if (ordinaux) {\n res = ordinauxEnLettres(lettres);\n } else if (x.match(/f/) && chiffres) {\n res = nombreOrdinal(lettres, 're', 'e');\n } else if (chiffres) {\n res = nombreOrdinal(lettres, 'er', 'e');\n }\n }\n\n // - p = Premier ou 1er\n if (x.match(/p/)) {\n if (ordinaux) {\n res = premierOrdinalEnLettres(lettres);\n } else {\n res = nombreOrdinal(lettres, 'er', '');\n }\n }\n\n // - f = Féminin de p (première ou 1re)\n if (x.match(/[^o]f/)) {\n if (ordinaux) {\n res = premierOrdinalEnLettres(lettres, 1);\n } else {\n res = nombreOrdinal(lettres, 're', '');\n }\n }\n if (x.match(/b/)) {\n // - b = en Bas de casse (minuscules)\n res = res.toString().toLowerCase();\n }\n if (x.match(/c|m/)) {\n // - c | m = en Capitales (Majuscules)\n res = res.toString().toUpperCase();\n }\n return res;\n });\n\n if (typeof rappel === 'function') {\n resultat = rappel(resultat, obj);\n }\n })();\n } else {\n resultat = err;\n }\n\n return resultat;\n }\n\n return gregorien;\n }();\n return acte;\n }\n\n return umdCallback;\n}());\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/src/js/public/prototypes/Jour.prototype.gregorien.js b/src/js/public/prototypes/Jour.prototype.gregorien.js index 2211ef7..81c8a20 100644 --- a/src/js/public/prototypes/Jour.prototype.gregorien.js +++ b/src/js/public/prototypes/Jour.prototype.gregorien.js @@ -6,7 +6,7 @@ * @author Gilles Toubiana * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub} * @license MIT - * @param {String} [format='%J %Mlb %A'] - Le modèle de formatage :

+ * @param {String} [format='%Jp %Mlb %A'] - Le modèle de formatage :

* BALISES
* `%A` ou `%AN` - Année
* `%D`, `%DM` ou `%SM` - Décade/Semaine dans le mois
@@ -33,10 +33,10 @@ * @param {Function} [rappel] - Une fonction de rappel * @return {String} La date grégorienne formatée * @example - * new acte.Jour('1/1/1600').gregorien('%J %Mlb %A'); // '1 janvier 1600' + * new acte.Jour('1/1/1600').gregorien('%Jp %Mlb %A'); // '1er janvier 1600' */ acte.Jour.prototype.gregorien = function gregorien(format, erreur, rappel) { - const frmt = format || '%J %Mlb %A'; + const frmt = format || '%Jp %Mlb %A'; const err = erreur || 'Pas de correspondances.'; const tvg = this.variables.gregorien; let resultat; diff --git a/test/jasmine/acteSpec.js b/test/jasmine/acteSpec.js index 3b0b311..9695e50 100644 --- a/test/jasmine/acteSpec.js +++ b/test/jasmine/acteSpec.js @@ -197,7 +197,7 @@ describe('new acte.Jour()', function () { describe('new acte.Jour().gregorien()', function () { // Valeurs par défaut it('new acte.Jour().gregorien() = la date grégorienne ' + 'formatée par défaut.', function () { - expect(new acte.Jour('1/1/1600').gregorien()).toEqual('1 janvier 1600'); + expect(new acte.Jour('1/1/1600').gregorien()).toEqual('1er janvier 1600'); }); // Balises diff --git a/test/jasmine/lib/acte.js b/test/jasmine/lib/acte.js index 348ebb8..4edeeda 100644 --- a/test/jasmine/lib/acte.js +++ b/test/jasmine/lib/acte.js @@ -2099,7 +2099,7 @@ if (!Array.prototype.reduce) { * @author Gilles Toubiana * @see {@link https://github.com/gtoubiana/acte|Projet sur GitHub} * @license MIT - * @param {String} [format='%J %Mlb %A'] - Le modèle de formatage :

+ * @param {String} [format='%Jp %Mlb %A'] - Le modèle de formatage :

* BALISES
* `%A` ou `%AN` - Année
* `%D`, `%DM` ou `%SM` - Décade/Semaine dans le mois
@@ -2126,11 +2126,11 @@ if (!Array.prototype.reduce) { * @param {Function} [rappel] - Une fonction de rappel * @return {String} La date grégorienne formatée * @example - * new acte.Jour('1/1/1600').gregorien('%J %Mlb %A'); // '1 janvier 1600' + * new acte.Jour('1/1/1600').gregorien('%Jp %Mlb %A'); // '1er janvier 1600' */ acte.Jour.prototype.gregorien = function () { function gregorien(format, erreur, rappel) { - var frmt = format || '%J %Mlb %A'; + var frmt = format || '%Jp %Mlb %A'; var err = erreur || 'Pas de correspondances.'; var tvg = this.variables.gregorien; var resultat = void 0; diff --git a/test/jasmine/lib/acteSpec.js b/test/jasmine/lib/acteSpec.js index 3c2a80d..35084de 100644 --- a/test/jasmine/lib/acteSpec.js +++ b/test/jasmine/lib/acteSpec.js @@ -196,7 +196,7 @@ describe('new acte.Jour()', function () { describe('new acte.Jour().gregorien()', function () { // Valeurs par défaut it('new acte.Jour().gregorien() = la date grégorienne ' + 'formatée par défaut.', function () { - expect(new acte.Jour('1/1/1600').gregorien()).toEqual('1 janvier 1600'); + expect(new acte.Jour('1/1/1600').gregorien()).toEqual('1er janvier 1600'); }); // Balises diff --git a/test/spec-JourGregorien.js b/test/spec-JourGregorien.js index eb20ea5..403e4bf 100644 --- a/test/spec-JourGregorien.js +++ b/test/spec-JourGregorien.js @@ -6,7 +6,7 @@ describe('new acte.Jour().gregorien()', () => { 'formatée par défaut.', () => { expect(new acte.Jour('1/1/1600').gregorien()) - .toEqual('1 janvier 1600'); + .toEqual('1er janvier 1600'); }); // Balises