Определить разницу между двумя временными точками - C (СИ)
Формулировка задачи:
Разработать программу согласно варианту задания. Максимальная длина строк не менее
80 символов. При реализации программы необходимо использовать функции для обработки
строк из библиотек stdlib.h и string.h.
Задание:
Заданы две строки, содержащие время в формате: HH:MM:SS. Определить
разницу между этими временами. При вводе проверять корректность
времени. Пример: 23:30:00 и 5:45:00 → 6:15:00.
Зарание спасибо.
Решение задачи: «Определить разницу между двумя временными точками»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a1, b1, c1, a2, b2, c2, x;
scanf("%d:%d:%d\n%d:%d:%d", &a1, &b1, &c1, &a2, &b2, &c2);
x=a2*60*60+b2*60+c2-a1*60*60-b1*60-c1;
if(x<0)
x+=24*60*60;
c1=x%60; x/=60;
b1=x%60; x/=60;
a1=x;
printf("%d:%02d:%02d", a1, b1, c1);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с вводом-выводом и строками.
- Объявление переменных: a1, b1, c1, a2, b2, c2, x.
- Ввод времени в формате часы:минуты:секунды с помощью функции scanf.
- Расчет разницы между двумя временными точками в секундах.
- Если разница отрицательна, то добавляем 24 часа для корректного вывода.
- Вычисление минут и секунд из общего количества секунд.
- Вывод результата в формате часы:минуты:секунды.
- Код работает корректно для любого ввода, включая пустую строку.