打印某年某月日历c语言
时间: 2025-01-01 12:10:19 浏览: 9
在C语言中,打印日期日历来展示月份的天数和星期可以使用一些库函数如`<time.h>`和`<stdio.h>`。以下是一个简单的例子,它会打印出指定年份和月份的日历:
```c
#include <stdio.h>
#include <time.h>
// 函数定义来获取给定年月的日期列表
void print_calendar(int year, int month) {
struct tm date = {0};
// 设置日期为第一个星期一(假设月份开始于第一个工作日)
if (month == 1) {
date.tm_mday = 4 - ((year + (year / 4) - (year / 100) + (year / 400)) % 7);
} else {
// 对于其他非二月的情况,向前推一周
date.tm_mday = 1;
}
date.tm_mon = month - 1; // 映射到0-11范围
date.tm_year = year - 1900;
// 使用strftime()将日期格式化并打印
char calendar[100];
strftime(calendar, sizeof(calendar), "%A %d %B %Y", &date);
printf("%s\n", calendar);
// 接下来循环打印其余的日期
for (int i = 1; i <= 31; ++i) {
date.tm_mday = i;
strftime(calendar, sizeof(calendar), "%A %d %B %Y", &date);
printf("%s ", calendar); // 每一行留有空格
}
printf("\n");
}
int main() {
int year, month;
// 例如,输入2023年2月
scanf("%d %d", &year, &month);
print_calendar(year, month);
return 0;
}
```
在这个示例中,你需要从用户那里获取年份和月份,并通过`main()`函数调用`print_calendar()`函数来显示对应的日历。
阅读全文