С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/120: Рейтинг темы: голосов - 120, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 07.06.2016
Сообщений: 63

Определить количество дней между двумя датами

10.06.2016, 17:28. Показов 23681. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Знаю была уже подобная задачка решена ранее, и не раз:
Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими двумя датами. Для расчетов учитывать високосные года, а также корректное число дней в месяцах (март – 31, сентябрь – 30, февраль невисокосного года – 28 и т.д.).

Но вот как это решить с помощью if esle и switch?. то есть без использования функций, массивов и прочих прелестей... может кто подскажет?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.06.2016, 17:28
Ответы с готовыми решениями:

Количество дней между двумя датами
Хочу спросить кто знает как найти количество дней между двумя датами. ПРИМЕР input output 01.01.93 1 02.01.93 ...

Количество дней между двумя датами
Здравствуйте, у меня есть неполный код от задачи: Найти количество дней между двумя датами. можете помощь его закончить? Где то ошибка сижу...

Определить и вывести количество дней между двумя датами (логические операторы и операторы ветвлений)
Задачка Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими...

9
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
10.06.2016, 18:06
switch скорее всего используется в месяцах, возможно и в годах.
0
2 / 2 / 0
Регистрация: 07.06.2016
Сообщений: 63
10.06.2016, 18:36  [ТС]
можно пример...? я понимаю что нужно отталкиваться от кол-ва дней с начала года в конкретном месяце и прибавлять дату. и есть затык с определением высокосных лет...

Добавлено через 15 минут
В общем, вот набросал начало
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
/*Пользователь вводит две даты (день, месяц, год в виде целых чисел). 
Необходимо определить и вывести количество дней между этими двумя датами. 
Для расчетов учитывать високосные года, а также корректное число дней в месяцах 
(март – 31, сентябрь – 30, февраль невисокосного года – 28 и т.д.).*/
 
#include <iostream>
using namespace std;
void main ()
{
    int Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec; // число дней обычного года, истекших к началу определенного месяца
    int Jan1, Feb1, Mar1, Apr1, May1, Jun1, Jul1, Aug1, Sep1, Oct1, Nov1, Dec1; // число дней высокосного года, истекших к началу определенного месяца
    int yy1, mm1, dd1; 
    int yy2, mm2, dd2; 
    cout << "Enter the date1 (DD MM YYYY): "; // просим ввести первую дату
    cin >> dd1 >> mm1 >> yy1;
 
    if (yy1>9999 || yy1<1 || mm1>12 || mm1<1 || dd1>31 || dd1<1)
        cout << "You entered incorrect date!";
 
    cout << "Enter the date2 (DD MM YYYY): "; // просим ввести вторую дату
    cin >> dd2 >> mm2 >> yy2;
    cout << endl;
 
    if (yy2>9999 || yy2<1 || mm2>12 || mm2<1 || dd2>31 || dd2<1)
        cout << "You entered incorrect date!";
 
    Jan=0; Feb=31; Mar=59; Apr=90; May=120; Jun=151;
    Jul=181; Aug=212; Sep=243; Oct=273; Nov=304; Dec=334;
 
    Jan=0; Feb=31; Mar=60; Apr=91; May=121; Jun=152;
    Jul=182; Aug=213; Sep=244; Oct=274; Nov=305; Dec=335;
 
 
    if (mm1 = )
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
10.06.2016, 18:46
Давай обсудим алгоритм: есть високосный год, т.е. 29 дней в феврале. Я думаю от этого и надо начинать написание программы.
0
2 / 2 / 0
Регистрация: 07.06.2016
Сообщений: 63
10.06.2016, 18:56  [ТС]
видимо нужно определить кол-во высокосных годов в заданном периоде и прибавить это число к общему кол-ву дней
0
 Аватар для SW Developer
97 / 93 / 81
Регистрация: 10.01.2016
Сообщений: 663
Записей в блоге: 13
10.06.2016, 18:58
или можно задать начальный високосный год, как const и от этой даты играть дальше.
0
2 / 2 / 0
Регистрация: 07.06.2016
Сообщений: 63
10.06.2016, 19:08  [ТС]
спасибо!
0
2 / 2 / 0
Регистрация: 07.06.2016
Сообщений: 63
12.06.2016, 16:00  [ТС]
Вот такой извращенный вариант , но рабочий :

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*Пользователь вводит две даты (день, месяц, год в виде целых чисел). 
Необходимо определить и вывести количество дней между этими двумя датами. 
Для расчетов учитывать високосные года, а также корректное число дней в месяцах 
(март – 31, сентябрь – 30, февраль невисокосного года – 28 и т.д.).*/
 
 
 
#include <iostream>
using namespace std;
void main ()
{
    int Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec; 
    int Jan2, Feb2, Mar2, Apr2, May2, Jun2, Jul2, Aug2, Sep2, Oct2, Nov2, Dec2; 
    int dd1, mm1, yy1; 
    int dd2, mm2, yy2;
    const int DinY=365;
    
    cout << "Enter the date1 (DD MM YYYY): "; // просим ввести первую дату
    cin >> dd1 >> mm1 >> yy1;
 
    if (yy1>9999 || yy1<1 || mm1>12 || mm1<1 || dd1>31 || dd1<1)
        cout << "You entered incorrect date!" << endl;
 
    cout << "Enter the date2 (DD MM YYYY): "; // просим ввести вторую дату
    cin >> dd2 >> mm2 >> yy2;
    cout << endl;
 
    if (yy2>9999 || yy2<1 || mm2>12 || mm2<1 || dd2>31 || dd2<1)
        cout << "You entered incorrect date!" << endl;
 
    Jan=0; Feb=31; Mar=59; Apr=90; May=120; Jun=151;
    Jul=181; Aug=212; Sep=243; Oct=273; Nov=304; Dec=334; // число дней обычного года, истекших к началу определенного месяца с начала года
 
    int mm3;
 
    if (mm2<2)
        mm3 = Jan;
    else if (mm2>1 && mm2<3)
        mm3 = Feb;
    else if (mm2>2 && mm2<4)
        mm3 = Mar;
    else if (mm2>3 && mm2<5)
        mm3 = Apr;
    else if (mm2>4 && mm2<6)
        mm3 = May;
    else if (mm2>5 && mm2<7)
        mm3 = Jun;
    else if (mm2>6 && mm2<8)
        mm3 = Jul;
    else if (mm2>7 && mm2<9)
        mm3 = Aug;
    else if (mm2>8 && mm2<10)
        mm3 = Sep;
    else if (mm2>9 && mm2<11)
        mm3 = Oct;
    else if (mm2>10 && mm2<12)
        mm3 = Nov;
    else
        mm3 = Dec;
 
    int mm5;
 
    if (mm1<2)
        mm5 = Jan;
    else if (mm1>1 && mm1<3)
        mm5 = Feb;
    else if (mm1>2 && mm1<4)
        mm5 = Mar;
    else if (mm1>3 && mm1<5)
        mm5 = Apr;
    else if (mm1>4 && mm1<6)
        mm5 = May;
    else if (mm1>5 && mm1<7)
        mm5 = Jun;
    else if (mm1>6 && mm1<8)
        mm5 = Jul;
    else if (mm1>7 && mm1<9)
        mm5 = Aug;
    else if (mm1>8 && mm1<10)
        mm5 = Sep;
    else if (mm1>9 && mm1<11)
        mm5 = Oct;
    else if (mm1>10 && mm1<12)
        mm5 = Nov;
    else
        mm5 = Dec;
 
 
    int DinY2; // кол-во дней в последнем неполном году
 
    DinY2 = mm3+dd2;
 
    Jan2=365; Feb2=334; Mar2=304; Apr2=273; May2=243; Jun2=212;
    Jul2=181; Aug2=151; Sep2=120; Oct2=90; Nov2=59; Dec2=31; // число дней обычного года, оставшиеся к началу следующего года
 
    int mm4;
 
    if (mm1<2)
        mm4 = Jan2;
    else if (mm1>1 && mm1<3)
        mm4 = Feb2;
    else if (mm1>2 && mm1<4)
        mm4 = Mar2;
    else if (mm1>3 && mm1<5)
        mm4 = Apr2;
    else if (mm1>4 && mm1<6)
        mm4 = May2;
    else if (mm1>5 && mm1<7)
        mm4 = Jun2;
    else if (mm1>6 && mm1<8)
        mm4 = Jul2;
    else if (mm1>7 && mm1<9)
        mm4 = Aug2;
    else if (mm1>8 && mm1<10)
        mm4 = Sep2;
    else if (mm1>9 && mm1<11)
        mm4 = Oct2;
    else if (mm1>10 && mm1<12)
        mm4 = Nov2;
    else
        mm4 = Dec2;
 
 
    int DinY1; // кол-во дней в первом неполном году
 
    DinY1 = mm4-dd1;
 
    int date3, date4, res; // date3 - количество полных лет, date4 - кол-во высокосных.
 
    date3 = yy2-yy1;
    date4 = date3/4; // кол-во высокосных
    date3--;
 
    if (yy2!=yy1)
        res = (date3*DinY)+DinY1+DinY2+date4; // DinY - константа, кол-во дней в обычном году
    else if (yy1==yy2 && mm1==mm2)
        res = dd2-dd1;
    else
        res = (mm3+dd2)-(mm5+dd1);
    cout << "Quantity of days between entered dates is: " << res << endl << endl;
 
    system ("pause");
}
может кому пригодится в будущем
0
0 / 0 / 0
Регистрация: 13.01.2020
Сообщений: 4
13.01.2020, 21:16
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Rus");
 
    int choice;
 
    cout << "Введите вариант задания -->" ;
 
    cin >> choice;
 
    switch (choice)
    {
        case 1:
        {
            int day1, month1, year1, day2, month2, year2, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec;
 
            int alldays, diff, A, B, Jan2, Feb2, Mar2, Apr2, May2, Jun2, Jul2, Aug2, Sep2, Oct2, Nov2, Dec2;
 
            cout << "Введите кол-во дней 1-го года: " << endl;
 
            cin >> day1;
 
            cout << "Введите кол-во месяцев 1-го года: " << endl;
 
            cin >> month1;
 
            cout << "Введите 1-ый год: " << endl;
 
            cin >> year1;
 
            if (year1 % 400 == 0 || year1 % 4 == 0) // Проверка на високосный год
            {
                switch (month1)
                {
                    case 1: {A = Jan = day1; }break;
                    case 2: {A = Feb = day1 + 31; }break;
                    case 3: {A = Mar = day1 + 31 + 29; }break;
                    case 4: {A = Apr = day1 + 31 + 29 + 31; }break;
                    case 5: {A = May = day1 + 31 + 29 + 31 + 30; }break;
                    case 6: {A = Jun = day1 + 31 + 29 + 31 + 30 + 31; }break;
                    case 7: {A = Jul = day1 + 31 + 29 + 31 + 30 + 31 + 30; }break;
                    case 8: {A = Aug = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31; }break;
                    case 9: {A = Sep = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31; }break;
                    case 10: {A = Oct = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 30; }break;
                    case 11: {A = Nov = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30; }break;
                    case 12: {A = Dec = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31; }break;
                                        // А = сделано для дальнейшей работы в случае попадание в конкретный кейс 
                    default: cout << "Такого месяца не существует!" << endl;
                }
            }
            else if (year1 % 100 != 0)// Проверка на не високосный год
            {
                switch (month1)
                {
                    case 1: {A = Jan = day1; }break;
                    case 2: {A = Feb = day1 + 31; }break;
                    case 3: {A = Mar = day1 + 31 + 28; }break;
                    case 4: {A = Apr = day1 + 31 + 28 + 31; }break;
                    case 5: {A = May = day1 + 31 + 28 + 31 + 30; }break;
                    case 6: {A = Jun = day1 + 31 + 28 + 31 + 30 + 31; }break;
                    case 7: {A = Jul = day1 + 31 + 28 + 31 + 30 + 31 + 30; }break;
                    case 8: {A = Aug = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31; }break;
                    case 9: {A = Sep = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31; }break;
                    case 10: {A = Oct = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 30; }break;
                    case 11: {A = Nov = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30; }break;
                    case 12: {A = Dec = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31; }break;
                                    // А = сделано для дальнейшей работы в случае попадание в конкретный кейс 
                default: cout << "Такого месяца не существует!" << endl;
                }
            }
 
            cout << "Введите кол-во дней 2-го года: " << endl;
 
            cin >> day2;
 
            cout << "Введите кол-во месяцев 2-го года: " << endl;
 
            cin >> month2;
 
            cout << "Введите 2-ой год: " << endl;
 
            cin >> year2;
 
            if (year1 % 400 == 0 || year1 % 4 == 0)// Проверка на високосный год
            {
                switch (month2)
                {
                    case 1: {B = Jan2 = day2; }break;
                    case 2: {B = Feb2 = day2 + 31; }break;
                    case 3: {B = Mar2 = day2 + 31 + 29; }break;
                    case 4: {B = Apr2 = day2 + 31 + 29 + 31; }break;
                    case 5: {B = May2 = day2 + 31 + 29 + 31 + 30; }break;
                    case 6: {B = Jun2 = day2 + 31 + 29 + 31 + 30 + 31; }break;
                    case 7: {B = Jul2 = day2 + 31 + 29 + 31 + 30 + 31 + 30; }break;
                    case 8: {B = Aug2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31; }break;
                    case 9: {B = Sep2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31; }break;
                    case 10: {B = Oct2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 30; }break;
                    case 11: {B = Nov2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30; }break;
                    case 12: {B = Dec2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31; }break;
                                    // В = сделано для дальнейшей работы в случае попадание в конкретный кейс 
                default: cout << "Такого месяца не существует!" << endl;
                }
            }
            else if (year1 % 100 != 0)// Проверка на не високосный год
            {
                switch (month2)
                {
                    case 1: {B = Jan2 = day2; }break;
                    case 2: {B = Feb2 = day2 + 31; }break;
                    case 3: {B = Mar2 = day2 + 31 + 28; }break;
                    case 4: {B = Apr2 = day2 + 31 + 28 + 31; }break;
                    case 5: {B = May2 = day2 + 31 + 28 + 31 + 30; }break;
                    case 6: {B = Jun2 = day2 + 31 + 28 + 31 + 30 + 31; }break;
                    case 7: {B = Jul2 = day2 + 31 + 28 + 31 + 30 + 31 + 30; }break;
                    case 8: {B = Aug2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31; }break;
                    case 9: {B = Sep2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31; }break;
                    case 10: {B = Oct2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 30; }break;
                    case 11: {B = Nov2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30; }break;
                    case 12: {B = Dec2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31; }break;
                                    // В = сделано для дальнейшей работы в случае попадание в конкретный кейс 
                default: cout << "Такого месяца не существует!" << endl;
                }
            }
 
            diff = (B - A) + 365 + (year2 - year1) ;// Формула странная, но рабочая
 
            cout << "Разница между годами: " << diff << " дней" << endl;
 
        }break;
        default: cout << "Такого варианта нет!" << endl;
    }
    system("pause");
}
0
0 / 0 / 0
Регистрация: 13.01.2020
Сообщений: 4
14.01.2020, 16:52
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Rus");
 
    int choice;
 
    cout << "Введите вариант задания -->" ;
 
    cin >> choice;
 
    switch (choice)
    {
        case 1:
        {
            int day1, month1, year1, day2, month2, year2, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec;
 
            int diff, diff_in_years, A, B, Jan2, Feb2, Mar2, Apr2, May2, Jun2, Jul2, Aug2, Sep2, Oct2, Nov2, Dec2;
 
            cout << "Введите кол-во дней 1-го года: " << endl;
 
            cin >> day1;
 
            cout << "Введите кол-во месяцев 1-го года: " << endl;
 
            cin >> month1;
 
            cout << "Введите 1-ый год: " << endl;
 
            cin >> year1;
 
            if (year1 % 400 == 0 || year1 % 4 == 0)
            {
                switch (month1)
                {
                    case 1: {A = Jan = day1; }break;
                    case 2: {A = Feb = day1 + 31; }break;
                    case 3: {A = Mar = day1 + 31 + 29; }break;
                    case 4: {A = Apr = day1 + 31 + 29 + 31; }break;
                    case 5: {A = May = day1 + 31 + 29 + 31 + 30; }break;
                    case 6: {A = Jun = day1 + 31 + 29 + 31 + 30 + 31; }break;
                    case 7: {A = Jul = day1 + 31 + 29 + 31 + 30 + 31 + 30; }break;
                    case 8: {A = Aug = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31; }break;
                    case 9: {A = Sep = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31; }break;
                    case 10: {A = Oct = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 30; }break;
                    case 11: {A = Nov = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30; }break;
                    case 12: {A = Dec = day1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31; }break;
 
                    default: cout << "Такого месяца не существует!" << endl;
                }
            }
            else if (year1 % 100 != 0)
            {
                switch (month1)
                {
                    case 1: {A = Jan = day1; }break;
                    case 2: {A = Feb = day1 + 31; }break;
                    case 3: {A = Mar = day1 + 31 + 28; }break;
                    case 4: {A = Apr = day1 + 31 + 28 + 31; }break;
                    case 5: {A = May = day1 + 31 + 28 + 31 + 30; }break;
                    case 6: {A = Jun = day1 + 31 + 28 + 31 + 30 + 31; }break;
                    case 7: {A = Jul = day1 + 31 + 28 + 31 + 30 + 31 + 30; }break;
                    case 8: {A = Aug = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31; }break;
                    case 9: {A = Sep = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31; }break;
                    case 10: {A = Oct = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 30; }break;
                    case 11: {A = Nov = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30; }break;
                    case 12: {A = Dec = day1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31; }break;
 
                default: cout << "Такого месяца не существует!" << endl;
                }
            }
 
            cout << "Введите кол-во дней 2-го года: " << endl;
 
            cin >> day2;
 
            cout << "Введите кол-во месяцев 2-го года: " << endl;
 
            cin >> month2;
 
            cout << "Введите 2-ой год: " << endl;
 
            cin >> year2;
 
            if (year1 % 400 == 0 || year1 % 4 == 0)
            {
                switch (month2)
                {
                    case 1: {B = Jan2 = day2; }break;
                    case 2: {B = Feb2 = day2 + 31; }break;
                    case 3: {B = Mar2 = day2 + 31 + 29; }break;
                    case 4: {B = Apr2 = day2 + 31 + 29 + 31; }break;
                    case 5: {B = May2 = day2 + 31 + 29 + 31 + 30; }break;
                    case 6: {B = Jun2 = day2 + 31 + 29 + 31 + 30 + 31; }break;
                    case 7: {B = Jul2 = day2 + 31 + 29 + 31 + 30 + 31 + 30; }break;
                    case 8: {B = Aug2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31; }break;
                    case 9: {B = Sep2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31; }break;
                    case 10: {B = Oct2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 30; }break;
                    case 11: {B = Nov2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30; }break;
                    case 12: {B = Dec2 = day2 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31; }break;
 
                default: cout << "Такого месяца не существует!" << endl;
                }
            }
            else if (year1 % 100 != 0)
            {
                switch (month2)
                {
                    case 1: {B = Jan2 = day2; }break;
                    case 2: {B = Feb2 = day2 + 31; }break;
                    case 3: {B = Mar2 = day2 + 31 + 28; }break;
                    case 4: {B = Apr2 = day2 + 31 + 28 + 31; }break;
                    case 5: {B = May2 = day2 + 31 + 28 + 31 + 30; }break;
                    case 6: {B = Jun2 = day2 + 31 + 28 + 31 + 30 + 31; }break;
                    case 7: {B = Jul2 = day2 + 31 + 28 + 31 + 30 + 31 + 30; }break;
                    case 8: {B = Aug2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31; }break;
                    case 9: {B = Sep2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31; }break;
                    case 10: {B = Oct2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 30; }break;
                    case 11: {B = Nov2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30; }break;
                    case 12: {B = Dec2 = day2 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31; }break;
 
                default: cout << "Такого месяца не существует!" << endl;
                }
            }
            diff_in_years = year2 - year1;
 
            diff = (B - A) + (365 * diff_in_years) + diff_in_years;
 
            cout << "Разница между годами: " << diff << " дней" << endl;
 
        }break;
 
        default: cout << "Такого варианта нет!" << endl;
    }
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2020, 16:52
Помогаю со студенческими работами здесь

Высчитать количество дней между двумя датами
Короче,много тем на форуме по этому поводу,но нету ниодной правильной,которая мне нужна. Суть программы в том,что нужно ввести 2 даты....

Вычислить количество дней между двумя датами
Даны натуральные числа a1, b1, c1, a2, b2, c2, которые указывают две даты (число, месяц, год). Вычислить: количество дней, прошедших между...

Посчитать количество дней между двумя датами
читал на форуме похожие темы, даже нашел целый код, но он мне кажется мудреным, да и использовать мне массивы нельзя, мы их типо не прошли,...

Функция, считающая количество дней между двумя датами
нужна вот сюда функция, считающая количество дней между двумя датами всё задание звучит так: Создать класс Date для работы с датами в...

Рассчитать количество дней, прошедших между двумя датами
Помогите решить ТОЛЬКО с помощью циклов и условного оператора 3.Два дать заданные натуральными числами, обозначающими соответственно,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru