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

Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
Destroy12
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 4
01.04.2014, 13:05     Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих #1
"Создать класс Date для работы с датами в формате «год.месяц.день». Дата представляется структурой с тремя нолями типа unsigned Int.* для года, месяца и дня. Класс должен включать не менее трех функций инициализации: числами, строкой вида <год.месяц.день> (например, «2004.08.31») и датой. Обязательными операциями являются: вычисление даты через заданное количество дней, вычитание заданного количества дней из даты, определение високосности года, присвоение и получение отдельных частей (год, месяц, день), сравнение дат (равно, до, после), вычисление количества дней между датами."
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 13:05     Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих
Посмотрите здесь:

Создать класс Date – дата, содержащая поля: день, месяц, год. C++
C++ Превратить заданную пользователем дату в формате "дд.мм.гг" в формат "месяц дд. год"
C++ Создать класс Date для работы с датами в формате "год. месяц. день"
C++ Создать класс Date для работы с датами в формате «год.месяц.день»
C++ Тип "дата" (год, месяц, день)
C++ Из класса "Дата" с полями день, месяц, год создать класс "Время" с дополнительными полями час, минута, секунда
Класс "Дата": день, месяц, год C++
C++ Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
01.04.2014, 14:22     Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих #2
Для начала как то так
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
#include <iostream>
#include <string>
#include <vector>
#include <cstdlib>
#include <cmath>
 
namespace cforum
{
    struct elemDate
    {
        size_t day;
        size_t month;
        size_t year;
    };
 
    class Date
    {
        private:
            elemDate date;
        public:
            Date(size_t y = 1969,size_t m = 1,  size_t d = 1)
            {
                date.year = y;
                date.month = m;
                date.day = d;
            }
            Date(std::string str)
            {
                std::vector<std::string> result;
                  size_t pos = 0;
                  while (1)
                  {
                    size_t end = str.find('.', pos);
                    if (end == str.npos)
                    {
                      result.push_back(str.substr(pos));
                      break;
                    }
                    else
                    {
                      result.push_back(str.substr(pos, end - pos));
                      pos = end + 1;
                    }
                  }
                  date.year = atoi(result[0].c_str());
                  date.month = atoi(result[1].c_str());
                  date.day = atoi(result[2].c_str());
            }
            Date(const Date & d)
            {
                date.year = d.getElemDate().year;
                date.month = d.getElemDate().month;
                date.day = d.getElemDate().day;
            }
 
            elemDate getElemDate()const { return date; }
            size_t getYear()const { return date.year; }
            size_t getMonth()const { return date.month; }
            size_t getDay()const { return date.day; }
            void setYear(size_t y){ date.year = y; }
            void setMonth(size_t m){ date.month = m; }
            void setDay(size_t d){ date.day = d; }
 
            bool isLeapYear()
            {
              if(date.year % 100 == 0)
              {
                 if(date.year % 4 == 0 || date.year % 400 == 0)
                    return  true;
                return false;
              }
 
            }
 
            bool operator ==(Date & d)const
            {
                return date.year == d.getYear() && date.month == d.getMonth() && date.day == d.getDay();
            }
 
            bool operator !=(Date & d)const
            {
                return date.year != d.getYear() && date.month != d.getMonth() && date.day != d.getDay();
            }
 
            Date getDiffDate(Date & d)
            {
                return Date(std::abs(date.year - d.getYear()), std::abs(date.month - d.getMonth()), std::abs(date.day - d.getDay()));
            }
            Date operator +(const Date & d)
            {
                //сами
                return Date();
            }
            Date  operator -(size_t day)
            {
                //сами
                return Date();
            }
            size_t operator -(Date & d)
            {
                //сами
                return date.day;
            }
    };
}
 
int main()
{
    cforum::Date d;
    std::cout << d.getDay() << ':' << d.getMonth() << ':' << d.getYear() << std::endl;
 
    return 0;
}
Yandex
Объявления
01.04.2014, 14:22     Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих
Ответ Создать тему
Опции темы

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