Как переменным задавать дату в c++? - Вопросы по С+

Вопрос Как переменным задавать дату в c++?

Регистрация
17 Янв 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
Я сделал костыли, используя double и выводил точку с другой переменной.

Как сделать это всё в 1 действие?



#include <iostream>

#include <clocale>

using std::cout;

using std::cin;

using std::endl;



int main()

{

setlocale(LC_ALL, "ru_RU.UTF-8");



double birthday;

int year;

cout << "Напишите дату своего рождения (без года): ";

cin >> birthday;

cout << "Напиши свой год рождения: ";

cin >> year;

cout << "У меня день рождения тоже " << birthday;

cout << "." << year << std::endl;

return 0;

}
310044986_154e099142170ba3f52b29f9bf86a3ac_800.png

 
Регистрация
7 Дек 2012
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Если делать правильно, то это будет примерно пара страниц кода на реализацию класса, который будет парсить ввод пользователя, в том числе ввод с ошибками, неточностями и в разном формате (надо, как минимум, обрабатывать даты вида YYYY-MM-DD, MM/DD/YYYY и нашу традиционную DD.MM.YYYY). Ну а вызов метода у экземпляра класса да - будет одной строчкой.
 
Регистрация
12 Авг 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
ну как вариант использовать структуру или класс, но лучше структуру, класс для такой задачи не к чему, если конечно не собираешься приватные методы делать. я еще переопределил операторы << и >> для удобства вывода и чтения, но этот способ по идее будет только в с++ 20 и выше работать, т.к. format появилась недавно #include <iostream>
#include <format>

struct Date {
int day;
int month;
int year;
};

std::eek:stream& operator<<(std::eek:stream &out, const Date &date) {
out << std::format("{:02d}.{:02d}.{:04d}", date.day, date.month, date.year);;
return out;
}

std::istream& operator>>(std::istream &in, Date &date) {
char temp;
in >> date.day >> temp >> date.month >> temp >> date.year;
return in;
}

int main() {
Date date;
std::cin >> date;
std:: cout << date << std::endl;
return 0;
}
 
Регистрация
11 Сен 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
Для работы с датой используй библиотеку <chrono> или <ctime>. Либо структуру:
struct Date {
int day;
int month;
int year;
};

// Потом
Date birthday;
cout << "День: ";
cin >> birthday.day;
cout << "Месяц: ";
cin >> birthday.month;
cout << "Год: ";
cin >> birthday.year;
 
Сверху Снизу