Более подробно: 20:02 - если не учитывать, что в часе 60 минут, то предыдущее "счастливое" время - 19:91, но это не подходит, т.к. часы не могут показывать столько, дальше аналогично: 18:81 - не подходит; 17:71 - не подходит; 16:61 - не подходит; 15:51 - подходит, значит, это - предыдущее "счастливое" время. Чтобы найти, сколько времени с 15:51 до 20:02, то есть найти, насколько 20:02 больше, чем 15:51, нужно из большего отнять меньшее: 20:02-15:51=4:11, то есть 4 часа 11 минут. ответ: 4 ч 11 мин.
//Pascal ABC.NET 3.1 сборка 1219
uses
system;
Var
d1,d2:datetime;
a:integer;
begin
writeln('1 дата:');
write('День:');readln(a);d1:=d1.AddDays(a);
write('Месяц:');readln(a);d1:=d1.AddMonths(a);
write('Год:');readln(a);d1:=d1.AddYears(a);
writeln('2 дата:');
write('День:');readln(a);d2:=d2.AddDays(a);
write('Месяц:');readln(a);d2:=d2.AddMonths(a);
write('Год:');readln(a);d2:=d2.AddYears(a);
writeln('Res:',abs((d2-d1).Days));
end.
Пример ввода:
1 дата:
День:1
Месяц:1
Год:1998
2 дата:
День:2
Месяц:1
Год:1999
Пример вывода:
Res:366