stt.avm 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #
  2. # This module contains two functions for converting between natural
  3. # numbers expressing times in seconds since midnight January 1, 1970 and
  4. # strings of the form 'Fri Mar 18 1:58:31 2005 +0100'. The time zone
  5. # abbreviation is ignored, but time zones can be specified as +0500,
  6. # etc.. Days of the week are output correctly but ignored in the input.
  7. # Fields can be written in any order but must be separated by spaces.
  8. # Commas are optional.
  9. #
  10. # Copyright (C) 2007-2009 Dennis Furey
  11. #
  12. # one_time (217)
  13. # string_to_time (128327)
  14. # time_to_string (240056)
  15. #
  16. # compressed with granularity 89
  17. #
  18. #
  19. # This program is free software; you can redistribute it and/or modify
  20. # it under the terms of the GNU General Public License as published by
  21. # the Free Software Foundation; version 3.
  22. #
  23. # This program is distributed in the hope that it will be useful,
  24. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  25. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  26. # GNU General Public License for more details.
  27. #
  28. # You should have received a copy of the GNU General Public License
  29. # along with this program; if not, write to the Free Software Foundation,
  30. # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  31. #
  32. {kwwzkowzkHgxz{fnfkHgxz{fffgFfxnkowzggvfkfnjkHgxz{fcebfvUfjdfnfkHgxz{fbVUFeebg^
  33. zfgvhggoF{G{ve``Fue`fZbVkebfvbgFvxnkGoZfL^e``FbVUF^VUfefVgjVhffwEVivdf`DfUE>jVU
  34. FujVfVEffzgoFnhsffdf`DfUE>ebbNjWbgvUfjtajnkwFff^fL^e``FbVUVbVUfkEgoGhz{dgFff^fL
  35. ^e``FebbNfnb\vgggxzsgDgFff^fL^fUE>fk`{TGgvxvkwiz>nFnffd^e>VfbTnHfveZggrkInwKVdG
  36. DkFff^fgbOeFodezgrhbgfhgoKkgdGFFnfhnebDbfKo\Sfjbgbgnvvjjqns^f\gDgFDfUIxfyBB[fkU
  37. fbVgjbefykJqgivj^>nFf`D{F_wFHAvfnUgbNgrVWbfnVvbTNjwZ^ftGDdkHFoPf_cvffUFU^fnUeeb
  38. ffV{ICFxjgZfvf>gKjGKO^<=JfkbFUFfu``bNgueXniFgfxoiv^ffn_SIfKGNkzfbUFLffU^E>fU`yV
  39. JgFkFjhjwZffF^gAaFqM]f]ZhfU^bfu`dfbTcSGEpfjfkWGnwkvdff^i`jPoFf[fFbNgFbTffUH^vIN
  40. >fyvgejgfxjj{gvfKiDfabfI=KFe@fFbNhe?J{DPfgEbfxbzgngfxiGkvfffoJNFxn>G{fF?Fe@ddiH
  41. {^BffbNfobkNgjgrgffiIIvnffpW@omf\FAtffF>ftDx{FffubffUGqFkUfj^grffgWkvfFf]D?Gh\^
  42. `wDFnFEJkHfvfbNfjbHtffnEfkZfvVjgkFvwzhfffn{Fh{dh^gKHnjnhgbFfc`_EffzRfnUfkEfbfVI
  43. gNpj{fffdH_n<^DSf^o@wFy^fdfUOFbThoffU^ffbNfobfVekNfffpj{fFfgGPduz^d^xaUDfHf`FFb
  44. N>FfjUFfzUfgbNeFbofgfvfiGkvffgINf<An^`o^Tpf^\f`TGFbUFfE`fg^TfF`qlFbfVffgNwzffff
  45. >@Evff`a<df^^nFbNnjTffZOFd]lfVeffffgNwzfffoj]fiF<Fnfff`>FbPnebDhkFefbgfvffgO{Zf
  46. ffsF<NfGF^oD^^fLdfUF^fVeF`fVefvjfiXf{fffdd^rfFfFfddFe>FgVdfF`fVefbgjJgIKvfjfdFf
  47. NdfhfddtoxfnfF`fVef^bYOFdivfgFfhdf`dhfvdPdn^nfF`fVjoROHjvzffffdffffGFnpfFdhf^eF
  48. bms?hggjkzfngGFfn^dnFGF^thf^eFxBv\hgOwKwFjfgFffnddgl_^fGFdxJnveFfkoigvhgHFn^fhf
  49. ^h_gDfGF<YVyFfjiJghOGxgfvgffgFfefnFG^jkFzG^efgrkDjnzdgntfFff^fgGDg^f{<vKZifbggE
  50. fvvwhkmFfffnffffdtggD_n?fsqFxfVefuf{kGNwhiffmFvvffff^fgDgPdh{vIflfNefbVgXWZfgNw
  51. hzLnffpnfffffgDgPdEYQvFoNfFbjUFfnW{NjfgNwgzf`FgNffffdf^f>?YPnoVdOFeFU^ggbz{NfVf
  52. fgNvy{_FhdnffffffgdtgOEOGdf^bNfVbNQKhJfVjfffpigx{f^gFfffffffn`tB\CSfffLfbubGIva
  53. FbfVffffyVifOz^hhfffffffdhOGEGQ_FbfVUfVgxrF`fVjgfv^jpyWHkvgQNfffffffLX^`zF^fn`b
  54. PjRzwBf^eFbfVdgOENFfoGoZfo@fffffffhp>oxgF^^LjvHsKfnffFafZjeGpxjwflwzfn?Fffnfffg
  55. hl@g\^fOZxfhgY@_Ffdf`fbdHfo[wolcjrsfeFffffffhC^`Rv^f=PuHf^hcDhffeF`gyI@{HkgvhoO
  56. HwZfiFffpfffkPfpmGDztFzvuVdh^ffFHqDFoPfkVkOFfkfwkvgFhfffhfhyPdfgF\UjdULfMzW^oFf
  57. <<]N\?G=hhVMGdyGNwozfiFnfphffo^^iN_DWjm=FAwjJdgFd<\vDKffb{bfgnzx{fhfoFffpflnV>g
  58. P\YJ<@axnnld^fcvZZpehw{ffhgOgwozfiFnfphffhno>>=wB`vgHfFf]SDP`jfWOIN[fzjfgRxvzx{
  59. fhfoFffpflDfH_`]KyDfn^fgfjOteDF{McvefgzjfnnpkJkkIvfpgFgNnff>^\zxAviLffdZFXJaDdo
  60. T\mZfYFpWFVfgvfhiGogwivgFhnffiFh\\t<EzlgFfap_gE>mYLB[f`ffbfbjNjVvjfvnqkJjwZfpfn
  61. fphfgFal[^lffxrc_jeHz_CwEHg`NbefiBefjffkffhiWN{ivgDhnfFiFhd<d[\ffglXsNT<vaP=]z^
  62. \fTnNcFfVbfqgfgbgFvffjpojsfhfnfnnfhe@S\fg>_kIik=a\mZdfXDeHf`effbe^gMffgvyGhfgNw
  63. ivg>gFdgNgFJ[ff\?glXsGiS<`v>bh\FteXg`effbkNiBefeffNjpjwZfn^fflfhd?BvffG>_fdkBuX
  64. {f`<fcDdfTeHf`effefXfUGfvfgR{kvgFFfeFhd?zff><JeHmOoWd[h^FTffX^Fte?FeFVNVencFjfo
  65. NjysqPdqHQHf]{PfdhDrG_P<^Ol^`pFTnenDf^`>QEfbngFfgOPzsSfhvffkFDcvjf>fpILvSvn>fN^
  66. bDgnD^MEnkFuGffiJgkzqPfqIPhff[qFfvZ?_UDclIN@eDe^>>ONWNVepkFi@qJkKfhffffhd<=Zffg
  67. ?IKIH]xf^n>`^>ENEpbfbffffxgfKqQJqYPpj[qGjbZMLxEAlO?D@_EDbPcGgnfhfYs{FhgNgFfq<=z
  68. foOOOTeNJN^^^]EDbnVboxzoukz{YQOGQIPpdaqNnnniSt<ILmDNPEfXEdGbiocYM[{{vgHpfngIOcf
  69. ppplJOINdh\eNVcGMpJiB`jaxau[shfiNfnfpf>MFoGGKX?ffoD>P@^efzna<{E{BWuzB[nfgIFhfnp
  70. JgOOOINADqDvDG`l{Dtbru?t?W^m{rA{QQPiPqON\QGGGGaRniFPbNx{eqwD?AtEZ<]{RBSyfiONgFh
  71. qFhppmtb_PhDcPvxu]gPhacocxL{[_c{kqPniNqPnqNvgkp@nfhcDxggmBq_F^mw<@tm[{Q<HSgp[fi
  72. ANiFiIFiAQQSGFfoDQG{KFvAWlD<DTzuU[yny\cxhTcwOFhrpxfzoFgFqfmpdlDpu^{gzJkg@<bvFK]
  73. X@{[V?tKl=jfqPoPheQHsQQOOkI^fPngMgOcGxXWGq>qJACwGpayJ=Auuu{qMQOQPqNoGAQGYnj=Hpe
  74. Of`FkBGoun=GB>KjrAyOlIkXyUZAElD[ffnoJhfPoOQiGPoh^^]>Vtfh`ggobtKl>bt]axjCUGkWR^_
  75. vyVU{IQPgQGPffpqNplhqEIEnXfz>{ggmSCogZtJ[>Et?ku{?xAAvYKD<SffnqHkFppgQONp<\NHBE_
  76. fuf{^kFnGdQz^=Pt?AwQP_yvIwXZr[?k=bWoQIFoNiQNhjeQN]NNVXiCGowf{gxZGXb\ztEdwzGodyv
  77. kLB_>GCcc[>SvfhiOOPfgL`QG[Nl@@Fe^hkKBgobg^sNKFbCpz^={s@vye{{Nmyv<DYqwqTdSoQIFnn
  78. IQNnwPQN^>fNkgGRPgGMfqsI`nBl<Xt>vo[RKVnvegpo\{O{yAoVyAwTeZ^gGPppffgMOWE@G\gbjfj
  79. >kf`feglYDX<zuzhsWcGGnyn@NlLxZ[KGpo^xCNmkSmDawIIFnnqZ<FhOPfbgmfzjxfug`gaLduJeuj
  80. \zfg=K?^{l{uT\tC]NY\Xh@K`FJ?yAqqEUxhpiQONQQQQGqEnjbgMfVvFpV^FbL<tZ<=Sv^qHbfeo{E
  81. Wty>LZcGrylJ=p<JZ[kiQz\]taOFrfqQIqQQl`Fy`fefV{ffVvenIpF?wJebr]As_pU\xch]SRcSqxu
  82. vF^AEsEsx[Ye<PoFqpppo?HNrn^gt`g`ef{CFeFTelXrFG^m^D{^h?nZ<rZ\Lvxk?fkWSOlQ^>y[jAL
  83. jzRwLWQLIO<QQHqQIH>iK^d^`goE^jFNaK=oJtfFZhzvZlT<Mb<_icc_GCrCuRkFY[GsGa?xGOmdphg
  84. HHfoFFnnfgmfx^gFufcEDldthW`fMEAxZlN`bDZ=dqq\upX_X{Dv_kmxhBSHLhQUZVGPpoIPoQOONjh
  85. `FTfffE>bDl<tfO^@^<vI>\\ApSkI^Z_jzssC]tccZdlJ\xyCy{OogHIXNgHqPh^egdeFggteGD`zmv
  86. ZzBXr[xxCDQkK{{IVSdqpsSfyZcvzssXslcSPDIPmIQHn?qNef{DFevUn=\DSdOkzl\xCGpoldzkSd{
  87. jkOKMpsskIkIgqGC{lQnigO{kMKFP_gGOPIQHoONDefxTnebbLh<SmYoyY`FKG=?t<udvGpx{[NlLzI
  88. EIQ{xxCGlYGB?zkOJgfinPAQkYuJaOnfkFFpPfoDf`fvVFbNLn=n<JkH\C\?\tCND]uGCJkHlZ?\YGl
  89. d{Gpold{>_\{ccPh@KdZG_gdiN=K[glWNMXOQPQQMIP^grLfL\l>zoFjp^Z^]sLKt{gfz=CdgIoX[G=
  90. ?t<u\?ccDPa\tCMYJUS[cFOqEQA{dDNhOQMQHpFfvDFIL{Tfhzt=RExrZXgxxyktDQnXxDZ_<tCNDd]
  91. NPjvZ`xr^Y\Km{ccy=kpuO\oMHhqHoFkZgJxoNqyPpgnWlXAELxoxGGg_rk?uQ^IvZ^\\j^Xx]SglYe
  92. [KHb{xOSSWsmqpL]qPpniN>fnUn`XnfEUdndN_fPFJj^vkEvkYSEtDwcK[Z{xAVvX_gRGsHFJVJCHDA
  93. x{j`yESzdrx_gFAPpoQ?Ffe`F\Fgb<>NLC^<?eoKWk=BJzZUvM]tNMzm{{GpoglbJetgnJzd<thK?E=
  94. {ozx@VbX{BPn[KFfaH`qEDfjTpkZ>GsN^JdhjkXDg{L=L=?ApWHyFHkOKG=?vJdc_YIZ]tkN^tQfTAE
  95. yo{HIudwoE_vQIEAm@qLOFfU=C]m<YoV=tf{qyc][LRw=o[JMvShh@K\tCLZKYKIkgqYNmdEom\lMu{
  96. ozISODIHDClUD\]Jp^QNjTT<<txCIp_k=u=x>M=x`<OlXvxGq{x?\YCdip_oVxCKqGCoTKwa<xt_<A=
  97. yozjjEg_ELS`>VI>^e`GXFKxsgsHAlP{=QpFJZGHh[gpocddQgoVk=o>_enTKolXZYt`JT<w=U{oz[E
  98. lTvdAlT?QNe<[<?bxC?[UvTF<\dd<?sN<?{HnlLzAVglk=nldv<KeCCcldtPauz_D>X<PC{Kxwv`\mf
  99. ]qN^cPd_>_e=v@T=\\_oVZXuDJ=pk>_g>_v<KdcdtPc<?gwzDx>\IlPC{[unWAP@e=NlgcLD<zlX^>?
  100. lY]NQlCdfJtZD<ufE\KDnyvFYoo{od@>xA=tx{OeLNC=Pn{wFEF\E>_^j_DQbC]sR^F<gfvYYl?khvz
  101. s^KpTFlV[Xze`?GO?KuQj<<<?vX\GlsMxrDJetc?jtZZGqKh{f{Dx\<f^Mu{o][GeFKKlhtd^JfJ{I`
  102. xCF[sNJZXz_SPhYIwKKqkHoPd<m<a=YqlDMHOgoF_JBZDZ>xC@FJtbKIeyqvK{kI\{@gzhnzwCHgaN\
  103. OnRZfUQKhngTDcYIqldt<vFJxCDqoVyKK{{K=muwGwYPgKop^grLD<IV@VP>@{NgJRLxsxrT<vKjHFJ
  104. vK=phXvx{gpoldtPcPoxgEIxxoJAQ`bTFNH@kHaFe?bxC@xC>^=^_<?g`FJ?zKvvx{NlLz<JkVGKjrk
  105. PDhngKle`P\>mHd_Namldu>_tAFDiD<uunkuozjkJ\tCNFY[PoZyMrMGNgHoxpN>Tfn]LND<t<u]dU>
  106. DPa?ozTkugvjkEvF<vgsAFsO\^bQAOFNxo>EAJd<nFDba\j^vx{BkKln{FygJATc_GC>rgHxpPaFIPt
  107. fL>`p<@VNcXzggoE>vxo^xnfnVjVxsN?oa?FgHl\DpHkSo@<WLvDkzkvvfGzjgbgfkFdg^VJkIu{zgX
  108. pf`L]OFED<xCbkKln{BkVhklgne`GrfTff_^C^xC@ASEqP^dqxffh@[Y>GgoJGoEfnFtkHvhg^FnFeg
  109. kJGYXFJFxfFEOF^OQSl?{IvzgfufvjHggbgftnjdxgvu>FT^{I`<J`nCH`@lLFEFyK=mn{FxjD^xfZG
  110. bd^GnutfFd^ubd_ekbxC>EDXViAHNyPFJDkHvhvGFnjTfExvhfDbkxfbDnme=bXFJ=J^@EMHtd<zgfd
  111. nfVuFzbFFT^Xfgd^UbVDzZ?\bL<tZI?DnVE^yktjbd^dbbobe^geh^T^fUbJZL_YXqhn<fnVT^dtogd
  112. muBFbf_BabgU^FTb=oU`]\_NfVG_b^D_dU]x`GtF>XdDn^^xC>M\>zGeDcvee^U`FTjbQeQPFK]fUhZ
  113. RD^rJFTactd\J<<<u^E^]^Bn]uFF>U>w^^XctteM^QNEMML@L^ZG\J<Z<<B`G_^T_aAAAU\<<Ta<