C++20可用std::year_month_day转sys_days再调weekday()得星期(0=Sunday);C++11/17用std::tm+mktime,注意tm_year/tm_mon偏移及初始化-1;嵌入式可用Zeller公式,但需处理月份调整和模运算防负。

用 std::chrono 和 std::year_month_day 直接算(C++20 起)
如果你的编译器支持 C++20(如 GCC 12+、Clang 14+、MSVC 19.30+),这是最干净的方式:构造 std::year_month_day,转成 sys_days,再用 .weekday() 提取星期。
关键点是:必须先转成系统时间点(sys_days),不能直接对 year_month_day 调用 weekday() —— 否则会编译失败。
示例:
weekday
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











