std::chrono:: operator+, std::chrono:: operator- (std::chrono::year_month_weekday)
year()
y
month()
que
std::
chrono
::
year_month
(
ymwd.
year
(
)
, ymwd.
month
(
)
)
+
dm
y el mismo
weekday()
y
index()
que
ymwd
.
Para duraciones que son convertibles tanto a
std::chrono::years
como a
std::chrono::months
, las sobrecargas de
years
(3,4,6)
tienen preferencia si la llamada sería de otro modo ambigua.
Notas
Aunque
ymwd.
ok
(
)
sea
true
, el
year_month_weekday
resultante puede no representar una fecha válida si
ymwd.
index
(
)
es
5
.
Ejemplo
#include <cassert> #include <chrono> #include <iostream> int main() { auto ymwdi{1/std::chrono::Wednesday[1]/2021}; std::cout << ymwdi << '\n'; ymwdi = std::chrono::years(5) + ymwdi; // Primer miércoles en enero, 2026 std::cout << ymwdi << '\n'; assert(static_cast<std::chrono::year_month_day>(ymwdi) == std::chrono::January/7/2026); ymwdi = ymwdi - std::chrono::months(6); // Primer miércoles en julio, 2025 std::cout << ymwdi << '\n'; assert(static_cast<std::chrono::year_month_day>(ymwdi) == std::chrono::July/2/2025); }
Salida:
2021/Jan/Wed[1] 2026/Jan/Wed[1] 2025/Jul/Wed[1]