Задался я целью написать прогу на паскале (единственнйы язык граматику которого я знаю)
которая из тайм штампа делает нормальное человеческое время ))
сабж я написал день она нормально находит год и месяц а вот со временем никак .
сабж сама программа (за алгоритм не ругайте паскаль учу только второй год и тот в школе 2 раза в неделю)
Код: Выделить всё
program unix_time;
var x:longint; {chitajem s ekrana time shtamp po unix}
function today(st:longint) : integer; {st - time shtamp po unix}
var y,d,day,h,mes,min,s,yearsek,pogreshnost : longint;
begin
yearsek := 31536000 {god v sekundah};
y := 1970 + st div yearsek; {kakoj segodnia god }
pogreshnost := (y-1972) div 4;
{shcitajem skolko vysokosnyh
godov my propustili pervyj vysokosnyj s 1970 goda eto 1972 }
d :=(st mod yearsek) div 60 div 60 div 24 - pogreshnost; {stolko
dnej otnimajem, ved vysokosnyje goda ne schitali , i poluchim den goda}
s := st mod 60; {ostavshijesia sekundy}
min := st div 60 mod 60;
h := st div 60 div 60 mod 24;
if y mod 4 = 0 then {tut ishem mesiac goda}
case d of
1..31 : mes := 1;
32..60 : mes := 2;
61..91 : mes := 3;
92..121 : mes := 4;
122..152: mes := 5;
153..182: mes := 6;
183..213: mes := 7;
214..244: mes := 8;
245..274: mes := 9;
275..305: mes := 10;
306..335: mes := 11;
336..366: mes := 12;
end
else
case d of
1..31 : mes := 1;
32..59 : mes := 2;
60..90 : mes := 3;
91..120 : mes := 4;
121..151: mes := 5;
152..181: mes := 6;
182..212: mes := 7;
213..243: mes := 8;
244..273: mes := 9;
274..304: mes := 10;
305..334: mes := 11;
335..365: mes := 12;
end;
if y mod 4 =0
then
case mes of {ishem den' mesiaca}
1: day := d-0;
2: day := d-31;
3: day := d-60;
4: day := d-91;
5: day := d-121;
6: day := d-152;
7: day := d-182;
8: day := d-213;
9: day := d-244;
10: day := d-274;
11: day := d-305;
12: day := d-335;
end
else
case mes of
1: day := d-0;
2: day := d-31;
3: day := d-59;
4: day := d-90;
5: day := d-120;
6: day := d-151;
7: day := d-181;
8: day := d-212;
9: day := d-243;
10: day := d-273;
11: day := d-304;
12: day := d-334;
end;
writeln('God = ',y,', den v gou = ',d,
', mesiac = ',mes,', den mesaica = '
,day,', chiasy = ',h,', minuty = '
,min,', sekundy = ',s,'.');
today := y;
end;
begin
readln(x);
x:=today(x);
end.