#ifndef __TIME_CHH__ #define __TIME_CHH__ #include list.chh %<_abbrMonthNames=%list(dummy,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)>\ %<_fullMonthNames=%list(dummy,January,February,March,April,May,June,July, August,September,October,November,December)>\ \ %define(timeFromString,pattern,str, %locals(numreg,regs, daynum,dayfrm,monthnum,monthfrm,yearnum,yearfrm, hournum,hourfrm,minutenum,minutefrm,secondnum,secondfrm, %\ %\ %%%\ %\ %%%, %list(m),%'([0-9]+)'%%%, %list(b),%'([A-Za-z]+)'%%%, %list(B),%'([A-Za-z]+)'%%%, %list(Y),%'([0-9]+)'%%%, %list(H),%'([0-9]+)'%%%, %list(M),%'([0-9]+)'%%%, %list(S),%'([0-9]+)'%%%, else,%error(Illegal specifier '%r[1]' in macro 'timeFromString') )))$>\ %if(%[%smatch(%pattern,%str,%®s) != -1], %locals(result,day,month,year, %\ %if(%equal(%yearfrm,Y), % )\ %if(%equal(%monthfrm,m), % ,%if(%equal(%monthfrm,b), % ,%if(%equal(%monthfrm,B), % )))\ %if(%equal(%dayfrm,d), % )\ %if(%equal(%hourfrm,H), % )\ %if(%equal(%minutefrm,M), % )\ %if(%equal(%secondfrm,S), % )\ %result ) , %error(Wrong time format in macro 'timeFromString') ) ))\ \ %define(timeToString,pattern,time, %sgsub(%'$(.)',%pattern, %lambda(r, %cond(%equal(%r[1],$),$, %equal(%r[1],d),%time{day}, %equal(%r[1],m),%time{month}, %equal(%r[1],b),%_abbrMonthNames[%time{month}], %equal(%r[1],B),%_fullMonthNames[%time{month}], %equal(%r[1],Y),%time{year}, %equal(%r[1],H),%time{hour}, %equal(%r[1],M),%time{minute}, %equal(%r[1],S),%time{second}, else,%error(Illegal specifier '%r[1]' in macro 'timeToString') ) )) )\ \ %define(timeNow, %timeUNIX2Hash(%timeUNIX()) )\ \ #endif