СДЕЛАТЬ В PascalABC.net. ДАЮ 100 БАЛЛОВ!!!
Задано время отправления поезда и время в пути до конечной станции. Требуется написать программу, которая найдет время прибытия этого поезда (возможно, в другие сутки).
Входные данные
Входной файл INPUT.TXT содержит две строки. В первой строке задано время отправления, а во второй строке – время в пути. Время отправления задается в формате «HH:MM», где HH время в часах, которое принимает значение от 00 до 23, ММ – время в минутах, которое принимает значение от 00 до 59. Время в пути задается двумя неотрицательными целыми числами – количество часов и количество минут. Числа разделяются одним пробелом. Количество часов не превышает 120, минут – 59.
Выходные данные
Выходной файл OUTPUT.TXT должен содержать одну строку – время прибытия поезда на конечную станцию. Формат вывода этого времени совпадает с форматом ввода времени отправления.
Ответы
program TrainArrival;
uses SysUtils;
var
DepartureTime, TravelTime: string;
DepartureHours, DepartureMinutes: integer;
TravelHours, TravelMinutes: integer;
ArrivalHours, ArrivalMinutes: integer;
TotalMinutes: integer;
InputFile, OutputFile: TextFile;
begin
AssignFile(InputFile, 'INPUT.TXT');
Reset(InputFile);
Readln(InputFile, DepartureTime);
Readln(InputFile, TravelTime);
CloseFile(InputFile);
// Разделяем строку времени отправления на часы и минуты
DepartureHours := StrToInt(Copy(DepartureTime, 1, 2));
DepartureMinutes := StrToInt(Copy(DepartureTime, 4, 2));
// Разделяем строку времени в пути на часы и минуты
Val(Copy(TravelTime, 1, Pos(' ', TravelTime) - 1), TravelHours);
Val(Copy(TravelTime, Pos(' ', TravelTime) + 1, Length(TravelTime)), TravelMinutes);
// Считаем общее время в пути в минутах
TotalMinutes := DepartureHours * 60 + DepartureMinutes + TravelHours * 60 + TravelMinutes;
// Вычисляем часы и минуты времени прибытия
ArrivalHours := TotalMinutes div 60 mod 24;
ArrivalMinutes := TotalMinutes mod 60;
// Записываем результат в файл OUTPUT.TXT
AssignFile(OutputFile, 'OUTPUT.TXT');
Rewrite(OutputFile);
WriteLn(OutputFile, Format('%.2d:%.2d', [ArrivalHours, ArrivalMinutes]));
CloseFile(OutputFile);
end.
Assign(input, 'input.txt');
var ВремяОтправления := ReadlnString; // HH.MM
var (ЧасовВпути, МинутВПути) := ReadInteger2;
var (ОтправлениеЧасы, ОтправлениеМинуты) :=
(ВремяОтправления[:3].ToInteger, ВремяОтправления[4:].ToInteger);
// продолжение следует
var МинутыПрибытия := ОтправлениеМинуты + МинутВПути;
var ПереносМинут := МинутыПрибытия > 59;
if ПереносМинут then МинутыПрибытия -= 60;
var ЧасыПрибытия := (ОтправлениеЧасы + ЧасовВпути + Ord(ПереносМинут)) mod 24;
var res := $'{ЧасыПрибытия, 0:d2}:{МинутыПрибытия, 0:d2}';
Assign(output, 'output.txt');
Writeln(res)