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

Создать класс Date для работы с датами в формате «год.месяц.день»

06.05.2021, 16:09. Показов 6901. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не получается изменить дату, а так же не могу правильно прописать условие для подсчета количества дней между датами. Может кто-то поможет?
Создать класс Date для работы с датами в формате «год.месяц.день».
Дата представляется структурой с тремя полями типа unsigned int: для года, месяца и дня.
Класс должен включать не менее трех функций инициализации:
числами, строкой вида «год.месяц.день» (например, «2004.08.31») и датой.
Обязательными операциями являются:
вычисление даты через заданное количество дней,
вычитание заданного количества дней из даты,
определение високосности года,
присвоение и получение отдельных частей (год, месяц, день),
сравнение дат (равно, до, после),
вычисление количества дней между датами.
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
#include <iostream>
using namespace std;
 
class Date // имя класса
{
       /* список методов доступных другим функциям и объектам программы */
public: // спецификатор доступа publ
    void set_date(unsigned int date_year, unsigned int date_month, unsigned int date_day); // установка даты в формате дд.мм.гг
    void get_date(); // отобразить текущую дату
    void leap_year(); //високосный год 
    void part_date(); //получение части даты 
    void change_date(unsigned int date_year, unsigned int date_month, unsigned int date_day); //изменить дату
    void date_calculator(); // калькулятор дат 
/* список свойств и методов для использования внутри класса */
private: // спецификатор доступа private
    unsigned int year, // год
                 month, // месяц
                 day; // день
 
 
}; // конец объявления класса Date
void Date::set_date(unsigned int date_year, unsigned int date_month, unsigned int date_day) // установка даты в формате дд.мм.гг
{
    year = date_year; // инициализация год
    month = date_month; // инициализация месяц
    day = date_day; // инициализация день
 
}
void Date::get_date() // отобразить текущую дату
{
    cout << "Дата: " << year << "." << month << "." << day << endl;
}
void Date::leap_year() // високосный год
{
    if (year % 4 == 0)
        cout << "Год високосный" << endl;
    else
        cout << "Год не является високосным" << endl;
}
void Date::part_date()
{
    int part;
    cout << "Какая часть даты нужна?" << endl;
    cout << "0 - выход" << endl;
    cout << "1 - год" << endl;
    cout << "2 - месяц" << endl;
    cout << "3 - день" << endl;
    cin >> part;
    switch (part)
    {
    case 0:
        break;
    case 1:
        cout << year << endl;
        break;
    case 2:
        cout << month << endl;
        break;
    case 3:
        cout << day << endl;
        break;
    }
}
void Date::change_date() //изменить дату
{
    int new_part, new_year, new_month, new_day;
    cout << "Какую часть даты нужно изменить?" << endl;
    cout << "0 - выход" << endl;
    cout << "1 - год" << endl;
    cout << "2 - месяц" << endl;
    cout << "3 - день" << endl;
    cin >> new_part;
    switch (new_part)
    {
    case 0:
        break;
    case 1:
        cin >> new_year;
        year = new_year;
        break;
    case 2:
        cin >> new_month;
        month = new_month;
        break;
    case 3:
        cin >> new_day;
        day = new_day;
        break;
    }
    //cout << "Новая дата: " << date_year << "." << date_month << "." << date_day << endl;
    void set_date(unsigned int date_year, unsigned int date_month, unsigned int date_day); // установка даты в формате дд.мм.гг
    void get_date(); // отобразить текущую дату
}
 
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus"); // установка локали
    int day, month, year, day1, month1, year1, day2, month2, year2;
    cout << "Введите текущий год, месяц и день!\n";
    cout << "год: ";      cin >> year;
    cout << "месяц: ";    cin >> month;
    cout << "день: ";     cin >> day;
    Date objDate; // объявление объекта
    objDate.set_date(year, month, day); // инициализация даты
    objDate.get_date(); // отобразить дату
    objDate.leap_year(); //високосный год 
    objDate.part_date(); //получение части даты 
    objDate.change_date(year, month, day); //изменить дату
   
 
    cout << endl;
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2021, 16:09
Ответы с готовыми решениями:

Создать класс Date для работы с датами в формате «год.месяц.день»
Создать класс Date для работы с датами в формате «год.месяц.день». Дата представляется структурой с тремя нолями типа unsigned Int.* для...

Создать класс Date для работы с датами в формате «год.месяц.день»
Создать класс Date для работы с датами в формате «год.месяц.день». Дата представляется структурой с тремя полями типа unsigned int: для...

"Создать класс Date для работы с датами в формате «год.месяц.день»
В чем ошибки? #include &lt;iostream&gt; using namespace std; class Date { public: int after_a_specified_number_of_days; int...

3
 Аватар для stdin
129 / 81 / 49
Регистрация: 10.01.2020
Сообщений: 293
06.05.2021, 16:15
Carrot-killer, как минимум, насколько я вижу: определения метода change_date в классе и вне не совпадают по количеству принимаемых параметров.
1
0 / 0 / 0
Регистрация: 25.11.2018
Сообщений: 12
06.05.2021, 16:27  [ТС]
Не заметила ошибку. Спасибо, что указали. А не могли бы вы помочь как прописать условие подсчета дней между датами?
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
#include <iostream>
using namespace std;
 
class Date // имя класса
{
    /* список методов доступных другим функциям и объектам программы */
public: // спецификатор доступа public
    void set_date(unsigned int date_year, unsigned int date_month, unsigned int date_day); // установка даты в формате дд.мм.гг
    void get_date(); // отобразить текущую дату
    void leap_year(); //високосный год 
    void part_date(); //получение части даты 
    void change_date(unsigned int date_year, unsigned int date_month, unsigned int date_day); //изменить дату
    void date_calculator(); // калькулятор дат 
/* список свойств и методов для использования внутри класса */
private: // спецификатор доступа private
    unsigned int year, // год
                 month, // месяц
                 day; // день
 
 
}; // конец объявления класса Date
void Date::set_date(unsigned int date_year, unsigned int date_month, unsigned int date_day) // установка даты в формате дд.мм.гг
{
    year = date_year; // инициализация год
    month = date_month; // инициализация месяц
    day = date_day; // инициализация день
 
}
void Date::get_date() // отобразить текущую дату
{
    cout << "Дата: " << year << "." << month << "." << day << endl;
}
void Date::leap_year() // високосный год
{
    if (year % 4 == 0)
        cout << "Год високосный" << endl;
    else
        cout << "Год не является високосным" << endl;
}
void Date::part_date()
{
    int part;
    cout << "Какая часть даты нужна?" << endl;
    cout << "0 - выход" << endl;
    cout << "1 - год" << endl;
    cout << "2 - месяц" << endl;
    cout << "3 - день" << endl;
    cin >> part;
    switch (part)
    {
    case 0:
        break;
    case 1:
        cout << year << endl;
        break;
    case 2:
        cout << month << endl;
        break;
    case 3:
        cout << day << endl;
        break;
    }
}
void Date::change_date(unsigned int date_year, unsigned int date_month, unsigned int date_day) //изменить дату
{
    int new_part, new_year, new_month, new_day;
    cout << "Какую часть даты нужно изменить?" << endl;
    cout << "0 - выход" << endl;
    cout << "1 - год" << endl;
    cout << "2 - месяц" << endl;
    cout << "3 - день" << endl;
    cin >> new_part;
    switch (new_part)
    {
    case 0:
        break;
    case 1:
        cin >> new_year;
        year = new_year;
        break;
    case 2:
        cin >> new_month;
        month = new_month;
        break;
    case 3:
        cin >> new_day;
        day = new_day;
        break;
    }
    //cout << "Новая дата: " << date_year << "." << date_month << "." << date_day << endl;
    void set_date(unsigned int date_year, unsigned int date_month, unsigned int date_day); // установка даты в формате дд.мм.гг
    void get_date(); // отобразить текущую дату
}
 
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus"); // установка локали
    int day, month, year, day1, month1, year1, day2, month2, year2;
    cout << "Введите текущий год, месяц и день!\n";
    cout << "год: ";      cin >> year;
    cout << "месяц: ";    cin >> month;
    cout << "день: ";     cin >> day;
    Date objDate; // объявление объекта
    objDate.set_date(year, month, day); // инициализация даты
    objDate.get_date(); // отобразить дату
    objDate.leap_year(); //високосный год 
    objDate.part_date(); //получение части даты 
    objDate.change_date(year, month, day); //изменить дату
    objDate.get_date(); // отобразить дату
   
    cout << endl;
    system("pause");
    return 0;
}
0
 Аватар для stdin
129 / 81 / 49
Регистрация: 10.01.2020
Сообщений: 293
06.05.2021, 16:35
Carrot-killer, Вот тема на форуме, думаю там есть то, что вам нужно: Вычисление количества дней между датами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2021, 16:35
Помогаю со студенческими работами здесь

Создать класс Date для работы с датами в формате "год. месяц. день"
Всем доброго времени суток. Задали задачу на С++, но не могу её осилить. Может быть у кого-нибудь есть возможность помочь. Вот условие:...

Создать класс Date для работы с датами в формате "год.месяц.день" / C++ для начинающих
&quot;Создать класс Date для работы с датами в формате «год.месяц.день». Дата представляется структурой с тремя нолями типа unsigned Int.* для...

Создать класс Date для работы с датами в формате "год.месяц.день".Проблема заключается в том, что когда вожу числа больш
Проблема заключается в том, что когда вожу числа больше 50 НЕ добавляется месяц. #include&lt;iostream&gt; #include&lt;string&gt; ...

Создать класс Date – дата, содержащая поля: день, месяц, год.
Создать класс Date – дата, содержащая поля: день, месяц, год. Определить операторы &quot;+&quot; и &quot;-&quot;, как методы класса, а...

Создать класс Date для работы с датами
Создать класс Date для работы с датами в формате “год.месяц.день.” Дата представляется структурой с тремя полями типа unsigned int: для...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru