Форум программистов, компьютерный форум CyberForum.ru

Указать верное количество дней, приняв во внимание високосные года - C++

Восстановить пароль Регистрация
 
казуист
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 20
05.01.2016, 14:15     Указать верное количество дней, приняв во внимание високосные года #1
Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими двумя датами. Для расчетов учитывать високосные года, а также корректное число дней в месяцах (март – 31, сентябрь – 30, февраль невисокосного года – 28 и т.д.).

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
int a, b, c, d, e, f, x, y = 0;
 
    cout << "\nВведите начальную дату через пробел:\n";
    cin >> a >> b >> c;
    cout << "\nВведите конечную дату через пробел:\n";
    cin >> d >> e >> f;
 
    int m1 = 31;//январь
    int m2 = 28;//февраль
    int m3 = 31;//март
    int m4 = 30;//апрель
    int m5 = 31;//май
    int m6 = 30;//июнь
    int m7 = 31;//июль
    int m8 = 31;//август
    int m9 = 30;//сентябрь
    int m10 = 31;//октябрь
    int m11 = 30;//ноябрь
    int m12 = 31;//декабрь
 
     if (b == 1) { x = a; }
     else if (b == 2) { x = m1 + a; }
     else if (b == 3) { x = m1 + m2 + a; }
     else if (b == 4) { x = m1 + m2 + m3 + a; }
     else if (b == 5) { x = m1 + m2 + m3 + m4 + a; }
     else if (b == 6) { x = m1 + m2 + m3 + m4 + m5 + a; }
     else if (b == 7) { x = m1 + m2 + m3 + m4 + m5 + m6 + a; }
     else if (b == 8) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + a; }
     else if (b == 9) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + a; }
     else if (b == 10) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + a; }
     else if (b == 11) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + a; }
     else if (b == 12) { x = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + a; }
 
     if (e == 1) { y = d + y; }
     else if (e == 2) { y = m1 + d + y; }
     else if (e == 3) { y = m1 + m2 + d + y; }
     else if (e == 4) { y = m1 + m2 + m3 + d + y; }
     else if (e == 5) { y = m1 + m2 + m3 + m4 + d + y; }
     else if (e == 6) { y = m1 + m2 + m3 + m4 + m5 + d + y; }
     else if (e == 7) { y = m1 + m2 + m3 + m4 + m5 + m6 + d + y; }
     else if (e == 8) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + d + y; }
     else if (e == 9) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d + y; }
     else if (e == 10) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d + y; }
     else if (e == 11) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d + y; }
     else if (e == 12) { y = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d + y; }
 
    if (c == f) { cout << "\nКоличество дней между этими двумя датами :" << y - x; }
    else
        cout << "\nКоличество дней между этими двумя датами :" << (f - c) * 365 + (y - x);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2016, 14:15     Указать верное количество дней, приняв во внимание високосные года
Посмотрите здесь:

Сколько дней осталось до конца года C++
C++ Дан номер года (положительное целое число). Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный
C++ Определить количество дней в месяце для невысокосного года
Составить программу, которая по введенному номеру месяца и номеру года выводит количество дней в этом месяце(использовать операторы printf и scanf) C++
C++ Дано число года n. Найдите количество дней того года
C++ високосные отрицательные года
C++ По введенному номеру времени года выдать месяцы, количество дней в каждом из месяцев
Написать программу, вычисляющую количество дней от начала года до введенной даты C++
C++ Депозитный калькулятор - как учитывать високосные года?
C++ Нашел в схожей теме не могу понять в чем ошибка. Кроме того как конкретно сделать что были високосные года?
C++ Вывести на консоль все месяцы заданного пользователем времени года и количество дней в выбранном месяце
Узнать количество дней в месяце не высокостного года C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Valera_
 Аватар для _Valera_
486 / 368 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
05.01.2016, 15:05     Указать верное количество дней, приняв во внимание високосные года #2
ой блин... ты не пробовал перевести даты в дни рассчитать разницу ? Это не решение, я б не принял.

високосный год делится на 4 без остатка.

И ты не пробовал писать вопрос не в название,а в саму тему? Или дублировать...
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4247 / 2779 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
05.01.2016, 15:11     Указать верное количество дней, приняв во внимание високосные года #3
Красивый код..., лесенкой
Указать верное количество дней, приняв во внимание високосные года

Вот тут решение есть.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4247 / 2779 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
05.01.2016, 15:13     Указать верное количество дней, приняв во внимание високосные года #4
Цитата Сообщение от _Valera_ Посмотреть сообщение
високосный год делится на 4 без остатка.
Это в юлианском календаре, в григорианском немного по-другому.
Yandex
Объявления
05.01.2016, 15:13     Указать верное количество дней, приняв во внимание високосные года
Ответ Создать тему
Опции темы

Текущее время: 07:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru