Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Александр_Алекс
7 / 4 / 4
Регистрация: 08.12.2013
Сообщений: 165
#1

Подсчет дней между датами, преждевременный выход из цикла - C++

09.03.2014, 13:08. Просмотров 490. Ответов 6
Метки нет (Все метки)

Здравствуйте! Делаю программу на С++ для подсчета дней между двумя датами, цикл завершается после первой итерации, условие выхода из цикла не соблюдается.
Вот код:

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
// Test_Number_of_days.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int dayCur,monthCur,yearCur; //Peremennue dlya hraneniya tekuwei datu       
    int dayF,monthF,yearF; //Peremennue dlya hraneniya datu mezhdy kotori nyzhno naiti kol-vo dnei
    int numberDays; //Peremennaya dlya hraneniya kol-va dnei
 
    numberDays=0; //nachalnoe znachenie schetchika dnei
 
    dayF=5;
    monthF=4;
    yearF=2014;
 
    dayCur=3;
    monthCur=3;
    yearCur=2014;
 
 
do 
{
 
        if(monthCur==1 || monthCur==3 || monthCur==5 || monthCur==7 || monthCur==8 || monthCur==10 || monthCur==12)//esli v tek. mesyace 31 den'
        {
            do
            {
                cout<<"-";
                numberDays++;
                dayCur++;
 
                if (yearCur == yearF && monthCur == monthF && dayCur == dayF) break; //Esli cikl schitaet dni v poslednem mesyace
            }
            while(dayCur!=31);
        }
        if(monthCur==4 || monthCur==6 || monthCur==9 || monthCur==11) //esli v tek. mesyace 30 dnei
        {
            do
            {
                cout<<"+";
                numberDays++;
                dayCur++;
 
                if (yearCur == yearF && monthCur == monthF && dayCur == dayF) break; //Esli cikl schitaet dni v poslednem mesyace
            }
            while(dayCur != 30);
        }
        
        if(monthCur ==2 ) //esli fevral'
            do
            {
                cout<<"=";
                numberDays++;
                dayCur++;
                if (yearCur == yearF && monthCur == monthF && dayCur == dayF) break; //Esli cikl schitaet dni v poslednem mesyace
            }
            while(dayCur !=28);
 
        if (yearCur == yearF && monthCur == monthF && dayCur == dayF) break; //Vuhod iz osnovnogo cikla
        
        monthCur++; //Sledyjushii mesyac
        dayCur=1; //pervui den'
 
        if(monthCur > 12) // Slesdyushii god
        {
            cout<<"*";
            monthCur=1;
            dayCur=1;
            yearCur++;
        }
    
}
while(dayCur!=dayF && monthCur!=monthF && yearCur != yearF);
 
    cout<<"Kol-vo dney "<< numberDays;
 
 
    /*cout<<"Vvod goda: ";
     cin>>yearCur;
 
    cout<<"Vvod mesyaca: ";
     cin>>monthCur;
    
    cout<<"Vvod dnya: ";
     cin>>dayCur;*/
 
    system("pause");
    return 0;
}
Как видно из кода, условие цикла таково
C++
1
while(dayCur!=dayF && monthCur!=monthF && yearCur != yearF)
но выход из цикла происходит при таких значения переменных(см. вложения). Надеюсь, все свои действия я понятно описал в комментариях.
Заранее спасибо за помощь!
0
Миниатюры
Подсчет дней между датами, преждевременный выход из цикла  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2014, 13:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Подсчет дней между датами, преждевременный выход из цикла (C++):

Преждевременный выход из цикла
Здраствуйте! Спасибо за внимание. Стояла задача: 1. построить двумерный...

Преждевременный выход из цикла
#include &lt;iostream&gt; using namespace std; void enter_new_note (); void...

Преждевременный выход из цикла for на некотором промежутке
Экспериментируя с циклом for выявил вот какую не понятную мне особенность. При...

Число дней недели между датами
Добрый вечер. Есть две даты:начальная и конечная. И есть номер дня...

Вычисление количества дней между датами
Всем доброго времени суток!=) Я только начала изучать С++ и не могу придумать...

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

6
Александр_Алекс
7 / 4 / 4
Регистрация: 08.12.2013
Сообщений: 165
11.03.2014, 22:21  [ТС] #2
Ребят, буду благодарен любому совету!
0
Александр_Алекс
7 / 4 / 4
Регистрация: 08.12.2013
Сообщений: 165
19.03.2014, 19:00  [ТС] #3
Хоть какие-нибудь мысли!
0
stima
495 / 345 / 93
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 2
19.03.2014, 19:11 #4
Условие выхода соблюдается. Будьте внимательны.

неважно что
&&
monthCur!=monthF ~ 4 != 4 === false
&&
неажно что
==
false
0
Александр_Алекс
7 / 4 / 4
Регистрация: 08.12.2013
Сообщений: 165
21.03.2014, 16:15  [ТС] #5
Цитата Сообщение от stima Посмотреть сообщение
неважно что
&&
monthCur!=monthF ~ 4 != 4 === false
&&
неажно что
==
false
Не понял, что вы имели в виду. Как я понимаю, цикл будет работать только тогда, когда все три пары переменных будут не равны между собой. А там-то одна пара dayCur!=dayF все еще не равны друг другу, значит цикл должен продолжить работу. Или я неправ?
0
stima
495 / 345 / 93
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 2
22.03.2014, 04:52 #6
неправы, Вы не правильно интерпретируете операторы
0
IrineK
Заблокирован
22.03.2014, 05:05 #7
Подсчет между двумя датами в одном году, или года тоже могут быть разными?
0
22.03.2014, 05:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2014, 05:05
Привет! Вот еще темы с решениями:

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

Найти ошибки, колво дней между датами
Не могу понять почему выводит 0 вродя все правильно, буду очень благодарен!...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru