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

Подсчитать разницу в днях между 2 датами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построение и сортировка списка http://www.cyberforum.ru/cpp-beginners/thread388815.html
Здравствуйте! Прошу помочь разобраться со списками в C++, а в особенности с классом списков list. Задание было такое: В элементе списка содержатся данные о ноутбуке: ○ наименование; ○ цена;...
C++ Строки в С++ Дано натуральное число n. Получить символьное представление n в виде последовательности цифр и пробелов отделяющих группы по три цифры, начиная справа. Например, если n=1753967, то должно получиться... http://www.cyberforum.ru/cpp-beginners/thread388807.html
C++ Определение количества цифр в целом числе
Помогите плиз) Вот вариант что нужно сделать! написать подпрограмму-функцию определения кол-во цифр в целом числе n(если после деления k раз числа n на 10 в целой части числа будет ноль, то...
C++ матрицы
помогите решить не могу понять как это сделать и условие не понимаю. m = {{ 16, 78, 0, 6, -29, 19, -52, 65, -88, 51}, { -79, -22, 32, -25, -62, -69, -2, -59, -75, 89}, ...
C++ Не получается изменить шрифт в находящийся в RichEdit http://www.cyberforum.ru/cpp-beginners/thread388770.html
Накидал текстовый редактор. Не получается изменить шрифт в находящийся в RichEdite на дочерней форме(в Action не появляется обрабочик) а так же не получается отправлять файл на печать(как я понел...
C++ Помогите с задачкой Написать программу , которая в выходной файл выводит строки , содержащие во входном файле указанную подстроку. В файле дан список слов , упорядочить их по алфавиту . Увы я еще не могу осуществить... подробнее

Показать сообщение отдельно
St1ck_man
9 / 9 / 1
Регистрация: 21.11.2011
Сообщений: 36
21.11.2011, 23:22
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <iostream.h>
#include <conio.h>
using namespace std;
 
class Date
{
private:
    int day;
    int month;
    int year;
 
    int cmp(Date d1, Date d2)
    {
        if (d1.year>d2.year)
            return 1;
        else
            if (d1.year<d2.year)
                return -1;
            else
                if (d1.month>d2.month)
                    return 1;
                else
                    if (d1.month<d2.month)
                        return -1;
                    else
                        if (d1.day>d2.day)
                            return 1;
                        else
                            if (d2.day<d2.day)
                                return -1;
        return 0;
    }
 
    bool vys(int year)
    {
        bool res= false;
        if (year%4==0)
            res= true;
        if (year%100==0)
            res= false;
        if (year%400==0)
            res= true;
        return res;
    }
 
    void Add(Date &d)//функция увеличивает дату на 1, то есть показывает слудуущий день
{
    int mes[]= {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    if (vys(d.year))//если высокосный год то в фефрале 29 дней
        mes[1]= 29;
    d.day++;//увеличиваем день
    if (d.day>mes[d.month-1])//если привысили месяц, то увеличиваем месяц
    {
        d.day= 1;
        d.month++;
        if (d.month>12)
        {
            d.month= 1;
            d.year++;
        }
    }
}
 
 
public:
    Date(int day, int month, int year)
    {
        SetDay(day);
        SetMonth(month);
        SetYear(year);
    }
    Date()
    {
        day=0;
        month=0;
        year=0;
    }
 
    int GetDay()
    {
        return day;
    }
    int GetMonth()
    {
        return month;
    }
    int GetYear()
    {
        return year;
    }
 
    void SetDay(int day)
    {
        this->day= day;
    }
    void SetMonth(int month)
    {
        this->month= month;
    }
    void SetYear(int year)
    {
        this->year= year;
    }
 
    void Vvod()
    {
        cout<<"Vvedite datu v formate dd.mm.yyyy: ";
        scanf("%d.%d.%d", &day, &month, &year);
    }
 
    void Vyvod()
    {
        printf("%.2d.%.2d.%.4d", day, month, year);
    }
 
    int raz(Date d)
    {
        Date date1= *this;
        Date date2= d;
 
        if (cmp(date1, date2)>0)
            swap(date1, date2);
 
        int kol=0;
 
        for (int i=date1.year; i<date2.year; i++)
        {
            kol+= 365;
            if (vys(i))
                kol++;
        }
 
        while ((date1.day!=date2.day)||(date1.month!=date2.month))
        {
            kol++;
            Add(date1);
        }
 
        return kol;
    }
 
};
 
 
 
int main()
{
    Date d1;
    Date d2;
 
 
    d1.Vvod();
    d2.Vvod();
 
    int q= d1.raz(d2);
 
    cout<<"Kol-vo dney: "<<q;
    getch();
    return 0;
}
когда-то делал подобную задачу посмотите функцию raz() находит разность в днях между дамати
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru