c语言只使用循环打印日历
时间: 2024-12-06 20:23:43 浏览: 21
在C语言中,我们可以使用嵌套的for循环来打印出一个简单的月历。下面是一个简单的例子,用于打印出一个月的日历,假设月份从1月到12月,年份固定:
```c
#include <stdio.h>
// 打印指定天数的星号作为日历的列头
void print_stars(int days) {
for (int i = 0; i < days; i++) {
printf("* ");
}
printf("\n");
}
int main() {
// 获取当前日期信息,这里简化处理,直接设定月份
int month = 7; // 示例,替换为实际月份
int year = 2023; // 示例,替换为你想要的年份
// 计算每个月的天数
int num_days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 假设是闰年
if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) {
num_days[1] = 29;
}
// 打印月份名称
printf("%d年%d月\n", year, month);
// 首先打印星期表
for (int i = 0; i < 7; i++) {
if (i < num_days[month - 1]) {
printf("%d ", i + 1);
} else {
printf(" "); // 空格填充
}
print_stars(3); // 每行打印3个星号作为分割
}
printf("\n");
// 接下来打印每一天
for (int day = 1; day <= num_days[month - 1]; day++) {
printf("%2d ", day);
if ((day % 7) == 0) {
print_stars(3); // 到新的一周时换行并打印3个星号
printf("\n");
} else {
print_stars(1); // 普通日子,打印1个星号
}
}
return 0;
}
```
请注意,这个示例假设了用户输入的是非闰年的二月,如果需要考虑闰年的情况,还需要添加额外的条件判断。此外,为了保持简单,此代码仅适用于控制台输出。如果你需要美化输出或支持更复杂的交互式日历功能,可能需要引入其他库或者工具。
阅读全文