Вычислить интервал времени между двумя датами в днях - 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");
    
    
}

Объяснение кода листинга программы

В этом коде:

  1. Включаются необходимые заголовочные файлы:
    • stdio.h для работы с консолью (в частности, функциями printf и scanf)
    • math.h для работы с математическими функциями (в данном случае, используется функция sqrt)
    • stdlib.h для работы со стандартными функциями (в данном случае, используется функция abs)
  2. Считываются даты:
    • Сначала пользователю предлагается ввести первую дату в формате дд.мм.гггг с помощью функции scanf.
    • Затем считывается вторая дата с помощью той же функции.
  3. Вычисляются значения для контроля ввода:
    • Переменные z1 и z2 используются для контроля корректности ввода дат. Они представляют собой числа, которые будут увеличиваться на 31 и 365 для каждого дня и месяца соответственно.
    • Значение z1 представляет собой количество дней с начала эпохи (1 января 1970 года), соответствующее первой дате.
    • Значение z2 представляет собой количество дней с начала эпохи, соответствующее второй дате.
  4. Проверяется, какая дата наступила раньше:
    • Если z1 меньше z2, значит, первая дата наступила раньше второй.
    • Если z1 больше z2, значит, вторая дата наступила раньше первой.
  5. Вычисляется и выводится интервал между датами:
    • Если первая дата наступила раньше второй, выводится сообщение о том, сколько дней прошло между первой и второй датой.
    • Если вторая дата наступила раньше первой, выводится сообщение о том, сколько дней прошло между второй и первой датой.
  6. Завершение работы программы:
    • В конце работы программы вызывается функция system(pause`), которая приостанавливает выполнение программы до тех пор, пока пользователь не нажмет любую клавишу. Это позволяет пользователю увидеть результаты работы программы перед ее завершением.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы