Программа с меню: Вывод количества дней, прошедших от Рождества Христова до введённой даты - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Разработать программу, меню которой позволяет выполнить следующие функции: 1. Вввод даты (число, месяц, год) 2. Ввод даты в форме: 1 января 2010 3. Ввод даты в форме: 01.01.10 4. Вычисление по дате дня недели и порядкового номера дня в году 5. Вывод количества дней, прошедших от Рождества Христова до введёной даты 6. Информация о версии и авторе программы 7. Выход из программы Всем добрый вечер. Как реализоваться подобное меню (консольное)? (буду очень признателен, если кто-то скинет пример кода) Также не знаю как сделать пункты 4,5 P.S. До этого с Си дела не имел.

Решение задачи: «Программа с меню: Вывод количества дней, прошедших от Рождества Христова до введённой даты»

textual
Листинг программы
  1. #include <stdio.h>
  2. /*Разработать программу, меню которой позволяет выполнить следующие функции:
  3. 1. Вввод даты (число, месяц, год)
  4. 2. Ввод даты в форме: 1 января 2010
  5. 3. Ввод даты в форме: 01.01.10
  6. 4. Вычисление по дате дня недели и порядкового номера дня в году
  7. 5. Вывод количества дней, прошедших от Рождества Христова до введёной даты
  8. 6. Информация о версии и авторе программы
  9. 7. Выход из программы*/
  10.  
  11. int main()
  12. {
  13.     int a, b, c, d = 0, S = 0, dw, i, m, y;
  14.     printf("Input day:\n");
  15.     scanf("%d", &c);
  16.     printf("month (numbers only):\n");
  17.     scanf("%d", &b);
  18.     printf("year:\n");
  19.     scanf("%d", &a);
  20.     y = a;
  21.     for(m = 1; m < b; ++m){
  22.         if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12){
  23.             for(i = 1; i <= 31; ++i)
  24.                 ++d;
  25.             }
  26.         if(m == 4 || m == 6 || m == 9 || m == 11){
  27.             for(i = 1; i <= 30; ++i)
  28.                 ++d;
  29.             }
  30.         if(m == 2){
  31.             if(y % 100 == 0){
  32.                 if(y % 400 == 0){
  33.                     for(i = 1; i <= 29; ++i)
  34.                     ++d;
  35.                 }
  36.                 else
  37.                      for(i = 1; i <= 28; ++i)
  38.                         ++d;
  39.             }
  40.             else
  41.                 if(y % 4 == 0){
  42.                     for(i = 1; i <= 29; ++i)
  43.                         ++d;
  44.                 }
  45.                 else
  46.                     for(i = 1; i <= 28; ++i)
  47.                         ++d;
  48.         }
  49.     }
  50.     printf("Serial number of days in a year\n%d\n", (d + c));
  51.     for(i = 1; i < a; ++i){
  52.         if(i % 4 == 0){
  53.             if(i % 100 == 0){
  54.                 if(i % 400 == 0)
  55.                     S = S + 366;
  56.                 else
  57.                     S = S + 365;
  58.             }
  59.             else
  60.                 S = S + 366;
  61.         }
  62.         else
  63.             S = S + 365;
  64.     }
  65.     dw = (S + d + c) - (S + d + c) / 7 * 7;
  66.         if(dw == 0)
  67.             dw = 7;
  68.     printf("Number of days from AD started:\n%d\n", S + d + c);
  69.     printf("Weekday:\n%d\n", dw);
  70.     puts("Program "Days" v1.0 by LFC Cyberforum.ru 2016.03.09");
  71.     return 0;
  72. }

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

  1. Ввод даты (число, месяц, год)
  2. Ввод даты в форме: 1 января 2010
  3. Ввод даты в форме: 01.01.10
  4. Вычисление по дате дня недели и порядкового номера дня в году
  5. Вывод количества дней, прошедших от Рождества Христова до введёной даты
  6. Информация о версии и авторе программы
  7. Выход из программы

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


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

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

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы