C语言单双列日历输出
时间: 2024-11-16 22:14:09 浏览: 9
在C语言中,单双列日历输出通常涉及到控制台输出和数组操作。你可以使用嵌套循环来创建一个月的日历,其中外层循环控制月份行数,内层循环控制每一天的位置。下面是一个简单的示例,展示了如何打印出一个月的日历:
```c
#include <stdio.h>
#include <time.h>
#define ROWS 7 // 日历行数,一般一个月有6周加额外一周
#define COLS 7 // 每行显示的天数
void printCalendar(int year, int month) {
struct tm date = {0};
date.tm_year = year - 1900;
date.tm_mon = month - 1; // 从1开始计数,所以需要减1
date.tm_mday = 1; // 初始化为第一天
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
// 获取星期几
time_t t = mktime(&date);
int dayOfWeek = localtime(&t)->tm_wday;
// 输出日期(如果星期一到星期六),0表示周日
if (dayOfWeek >= 0 && dayOfWeek <= 5) {
printf("%d ", date.tm_mday);
} else {
printf(" "); // 空格填充
}
// 更新日期
if (++date.tm_mday > 31) {
date.tm_mday = 1;
date.tm_mon++;
if (date.tm_mon == 13) { // 如果已经过了12月,则进入下一年
date.tm_mon = 0;
date.tm_year++;
}
}
}
// 每行结束换行
if (i != ROWS - 1)
printf("\n");
}
}
int main() {
int year = 2023; // 示例年份
int month = 1; // 示例月份,范围1-12
printCalendar(year, month);
return 0;
}
```
运行这个程序会输出指定月份的日历。
阅读全文