История изменений
Исправление saahriktu, (текущая версия) :
А вот это более универсальный вариант, который считает время не до конкретного года, а до следующего:
program timetonextyear;
{$codepage utf8}
uses cwstring, sysutils, dateutils;
var
nowtime, thentime, timediff: int64;
ttdays, tthours, ttminutes, ttseconds: int64;
syear, smonth, sday: word;
begin
decodedate(now, syear, smonth, sday);
inc(syear);
nowtime := datetimetounix(now);
thentime := datetimetounix(encodedate(syear, 1, 1));
timediff := thentime - nowtime;
ttdays := timediff div 86400;
dec(timediff, ttdays * 86400);
tthours := timediff div 3600;
dec(timediff, tthours * 3600);
ttminutes := timediff div 60;
dec(timediff, ttminutes * 60);
ttseconds := timediff;
writeln('до ', syear, ' года осталось ', ttdays, ' дней, ', tthours, ' часов, ',
ttminutes, ' минут и ', ttseconds, ' секунд.');
end.
Исходная версия saahriktu, :
А вот это более универсальный вариант, который считает время не до конкретного года, а до следующего:
program timetonextyear;
{$codepage utf8}
uses cwstring, sysutils, dateutils;
var
nowtime, thentime, timediff: int64;
ttdays, tthours, ttminutes, ttseconds: int64;
syear, smonth, sday: Word;
begin
decodedate(now, syear, smonth, sday);
inc(syear);
nowtime := datetimetounix(now);
thentime := datetimetounix(encodedate(syear, 1, 1));
timediff := thentime - nowtime;
ttdays := timediff div 86400;
dec(timediff, ttdays * 86400);
tthours := timediff div 3600;
dec(timediff, tthours * 3600);
ttminutes := timediff div 60;
dec(timediff, ttminutes * 60);
ttseconds := timediff;
writeln('до ', syear, ' года осталось ', ttdays, ' дней, ', tthours, ' часов, ',
ttminutes, ' минут и ', ttseconds, ' секунд.');
end.