打印日历的c++程序
时间: 2024-12-11 18:17:32 浏览: 17
打印日历的C++程序通常会使用`<iostream>`、`<ctime>`库来获取当前日期,并利用循环和控制结构来展示月份的日历布局。下面是一个简单的例子,用于打印当前月份的日历:
```cpp
#include <iostream>
#include <ctime>
// 定义函数打印指定月份的日历
void printCalendar(int month, int year) {
// 获取当前时间并设置为指定年月
std::time_t t = std::mktime(std::localtime(&std::time(0)));
std::tm* current_time = std::localtime(&t);
current_time- 1900;
// 设置天数的范围,一般月份有28到31天
const int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 获取当前月份的第一天
int first_day_of_month = current_time->tm_wday + 1;
if (month == 2 && std::strftime("%B", current_time) == "February" && std::is_leap_year(year)) {
first_day_of_month = 1; // 调整为闰年的二月第一天是29日
}
// 打印月份标题
std::cout << "月 " << std::strftime("%B", current_time) << " " << year << "\n";
std::cout << "------------\n";
// 打印每一天的数字
for (int i = 1; i <= 7; ++i) {
if (i < first_day_of_month) {
std::cout << " ";
} else {
std::cout << i << " ";
}
if ((i + first_day_of_month - 1) % 7 == 0 || i == days_in_month[month - 1]) {
std::cout << "\n";
}
}
}
int main() {
int user_month, user_year;
std::cout << "请输入月份(1-12)和年份:";
std::cin >> user_month >> user_year;
printCalendar(user_month, user_year);
return 0;
}
```
阅读全文