Вычислить интервал времени между двумя датами в днях - C (СИ)
Формулировка задачи:
Вычислить интервал времени между двумя датами: B днях
Срочно нужно сделать эту задачку!!
Решение задачи: «Вычислить интервал времени между двумя датами в днях»
textual
Листинг программы
#include<stdio.h> #include<math.h> #include <stdlib.h> int main() { int d1,d2,m1,m2,y1,y2,z1,z2; printf("Введите первую дату в формате дд.мм.гггг:"); scanf ("%d.%d.%d",&d1,&m1,&y1); printf("Введите вторую дату в формате дд.мм.гггг:"); scanf ("%d.%d.%d",&d2,&m2,&y2); z1=y1*365+m1*31+d1; z2=y2*365+m2*31+d2; if(z1>z2)printf ("Между первой и второй датой прошло %d дней.\n",z1-z2); else printf ("Между второй и первой датой прошло %d дней.\n",z2-z1); system ("pause"); }
Объяснение кода листинга программы
В этом коде:
- Включаются необходимые заголовочные файлы:
stdio.h
для работы с консолью (в частности, функциямиprintf
иscanf
)math.h
для работы с математическими функциями (в данном случае, используется функцияsqrt
)stdlib.h
для работы со стандартными функциями (в данном случае, используется функцияabs
)
- Считываются даты:
- Сначала пользователю предлагается ввести первую дату в формате
дд.мм.гггг
с помощью функцииscanf
. - Затем считывается вторая дата с помощью той же функции.
- Сначала пользователю предлагается ввести первую дату в формате
- Вычисляются значения для контроля ввода:
- Переменные
z1
иz2
используются для контроля корректности ввода дат. Они представляют собой числа, которые будут увеличиваться на 31 и 365 для каждого дня и месяца соответственно. - Значение
z1
представляет собой количество дней с начала эпохи (1 января 1970 года), соответствующее первой дате. - Значение
z2
представляет собой количество дней с начала эпохи, соответствующее второй дате.
- Переменные
- Проверяется, какая дата наступила раньше:
- Если
z1
меньшеz2
, значит, первая дата наступила раньше второй. - Если
z1
большеz2
, значит, вторая дата наступила раньше первой.
- Если
- Вычисляется и выводится интервал между датами:
- Если первая дата наступила раньше второй, выводится сообщение о том, сколько дней прошло между первой и второй датой.
- Если вторая дата наступила раньше первой, выводится сообщение о том, сколько дней прошло между второй и первой датой.
- Завершение работы программы:
- В конце работы программы вызывается функция
system(
pause`), которая приостанавливает выполнение программы до тех пор, пока пользователь не нажмет любую клавишу. Это позволяет пользователю увидеть результаты работы программы перед ее завершением.
- В конце работы программы вызывается функция
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д