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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
/*Разработать программу, меню которой позволяет выполнить следующие функции:
1. Вввод даты (число, месяц, год)
2. Ввод даты в форме: 1 января 2010
3. Ввод даты в форме: 01.01.10
4. Вычисление по дате дня недели и порядкового номера дня в году
5. Вывод количества дней, прошедших от Рождества Христова до введёной даты
6. Информация о версии и авторе программы
7. Выход из программы*/
 
int main()
{
    int a, b, c, d = 0, S = 0, dw, i, m, y;
    printf("Input day:\n");
    scanf("%d", &c);
    printf("month (numbers only):\n");
    scanf("%d", &b);
    printf("year:\n");
    scanf("%d", &a);
    y = a;
    for(m = 1; m < b; ++m){
        if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12){
            for(i = 1; i <= 31; ++i)
                ++d;
            }
        if(m == 4 || m == 6 || m == 9 || m == 11){
            for(i = 1; i <= 30; ++i)
                ++d;
            }
        if(m == 2){
            if(y % 100 == 0){
                if(y % 400 == 0){
                    for(i = 1; i <= 29; ++i)
                    ++d;
                }
                else
                     for(i = 1; i <= 28; ++i)
                        ++d;
            }
            else
                if(y % 4 == 0){
                    for(i = 1; i <= 29; ++i)
                        ++d;
                }
                else
                    for(i = 1; i <= 28; ++i)
                        ++d;
        }
    }
    printf("Serial number of days in a year\n%d\n", (d + c));
    for(i = 1; i < a; ++i){
        if(i % 4 == 0){
            if(i % 100 == 0){
                if(i % 400 == 0)
                    S = S + 366;
                else
                    S = S + 365;
            }
            else
                S = S + 366;
        }
        else
            S = S + 365;
    }
    dw = (S + d + c) - (S + d + c) / 7 * 7;
        if(dw == 0)
            dw = 7;
    printf("Number of days from AD started:\n%d\n", S + d + c);
    printf("Weekday:\n%d\n", dw);
    puts("Program "Days" v1.0 by LFC Cyberforum.ru 2016.03.09");
    return 0;
}

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

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

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


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

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

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