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

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

10.06.2016, 17:28. Показов 23755. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru