Себе пока накидал, вроде тарахтит, но гложет меня что то внутри от не до деланности.
Код: Выделить всё
# Считаются только unsigned
# условие проверки високосного года ограничено текущей соткой
:global UnixTimeToFormat do={
:local dateY ($timeStamp / 31436000 + 1970);
:local dateM (($dateY - 1969) / 4);
:local dateD ($timeStamp / 86400 - $dateM);
:set $dateY ($dateD / 365 + 1970);
:set $dateD ($dateD % 365);
:local months [:toarray (31,28,31,30,31,30,31,31,30,31,30,31)]
:if (($dateY % 4) = 0) do={:set ($months->1) 29;}
do {
:for i from=0 to=11 do={:if (($months->$i) >= $dateD) do={:set $dateM ($i + 1); :set $dateD ($dateD +1); break;} else={:set $dateD ($dateD - ($months->$i))}}
} on-error={}
:log info $dateD;
:log info $dateM;
:log info $dateY;
:local timeS ($timeStamp % 86400);
:local timeH ($timeS / 3600);
:local timeM ($timeS % 3600 / 60);
:set $timeS ($timeS - $timeH * 3600 - $timeM * 60);
:log info $timeH;
:log info $timeM;
:log info $timeS;
}