C++ 实现控制台万年历:方向键翻月翻年,周末着色 + 今天高亮,Space 键一键回到今天。
2026 年 8 月
日 一 二 三 四 五 六
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
实际运行时:周六、周日显示蓝色,今天显示绿色(纯文本预览无法展示颜色)。
- 月历显示,星期表头,日期按真实星期对齐
- Sakamoto 算法计算星期
- 自动处理闰年与各月天数
- ← → 翻月,↑ ↓ 翻年,Space 回到今天,Esc 退出
- 周末蓝色,今天绿色
- 支持公元 1 年及以后的任意年份,翻到边界自动停住
- 启动即显示当前年月(默认构造 + 委托构造)
- 非法月份/年份抛出异常,红色错误提示
git clone https://github.com/DenJeb/cpp-Calendar.git
cd cpp-Calendar
mkdir build && cd build
cmake ..
cmake --build .
./calendar需要 CMake ≥ 3.16,g++ 支持 C++23(MinGW)。
仅支持 Windows:项目使用
<conio.h>和 Windows 控制台 API(颜色、清屏、窗口标题)。或直接用 g++:
g++ -std=c++23 main.cpp src/calendar.cpp src/console.cpp -I include -o calendar.exe
Calendar/
├── CMakeLists.txt # CMake 构建配置
├── main.cpp # 入口 + 按键监听
├── include/
│ ├── calendar.h # Calendar 类声明
│ └── console.h # 控制台工具层声明(颜色/清屏/标题)
├── src/
│ ├── calendar.cpp # Calendar 类实现
│ └── console.cpp # 控制台工具层实现
├── README.md
├── LICENSE
└── .gitignore
| 按键 | 功能 |
|---|---|
| ← | 上个月 |
| → | 下个月 |
| ↑ | 上一年 |
| ↓ | 下一年 |
| Space | 回到今天 |
| Esc | 退出 |