#c #c 20 #chrono #weekday
Вопрос:
В C 20 следующий код выведет число (0-6) для дня недели, указанного на вводимой дате:
#include <chrono>
#include <iostream>
int
main()
{
using namespace std;
using namespace std::chrono;
year_month_day dmy;
cin >> parse("%d %m %Y", dmy);
cout << format("%w", weekday{dmy}) << 'n';
}
Как я могу получить, чтобы это число использовалось в коде в качестве числового значения, чтобы я мог использовать его в вычислениях? Это должно быть просто, но я не могу этого понять.
int total_score = weekday{dmy} * 10;
В качестве примечания я действительно использую дату (http://howardhinnant.github.io/date/date.html) библиотека, созданная Говардом Хиннантом на C 17, но я считаю, что один и тот же вопрос применим к обоим.
Комментарии:
1. en.cppreference.com/w/cpp/chrono/weekday/encoding
2. @appleapple, Это похоже на ответ для меня 🙂
3. @appleapple Это именно то, что я искал. Я знал, что это будет просто. Если вы дадите это в качестве ответа и включите соответствующий вызов функции в фрагмент кода, я отмечу его как ответ.
Ответ №1:
Вы можете использовать std::chrono::weekday::c_encoding
для извлечения сохраненного значения.