C语言输出日历14


在编程中,经常需要处理日期和时间相关的信息,例如输出日历。C语言提供了丰富的日期和时间相关函数,可以方便地实现日历的输出。

以下是使用C语言输出日历的步骤:
头文件包含:包含`<stdio.h>`和`<stdlib.h>`头文件,提供输入/输出和标准库函数。
定义常量:定义常量YEAR和MONTH,表示要输出的年份和月份。
创建数组:创建数组dayNames用于存储星期名称,monthNames用于存储月份名称。
获取日期和时间:调用`time()`函数获取当前时间戳,再调用`localtime()`函数将时间戳转换为`struct tm`结构,其中包含日期和时间信息。
计算月初星期:计算给定月份的第一个星期的星期数,并将其存储在dayOfWeek变量中。
输出日历标题:根据MONTH和YEAR输出日历标题,包括月份名称和年份。
输出星期名称:循环输出星期名称,从星期日开始。
输出日历主体:使用嵌套循环逐个输出日历主体。外层循环遍历天数,内层循环输出每个星期的内容。
输出日历结尾:如果该月的天数不等于当前星期的天数,则输出空行以补齐空白。

以下是完整的C语言代码:```c
#include
#include
#include
const int YEAR = 2023;
const int MONTH = 1;
const char *dayNames[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
const char *monthNames[] = {"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"};
int main() {
time_t t = time(NULL);
struct tm *tm = localtime(&t);
int dayOfWeek = (tm->tm_mday - 1) % 7;
printf("\t\t\t\t %s %d", monthNames[MONTH - 1], YEAR);
printf("\tSu Mo Tu We Th Fr Sa");
for (int i = 1; i tm_mday; i++) {
if (i == 1) {
for (int j = 0; j < dayOfWeek; j++) {
printf(" ");
}
}
printf("%2d ", i);
if ((i + dayOfWeek) % 7 == 0) {
printf("");
}
}
for (int i = tm->tm_mday + 1; (i + dayOfWeek) % 7 != 0; i++) {
printf(" ");
}
printf("");
return 0;
}
```

运行以上代码,可以输出所指定月份的日历。例如,输出2023年1月的日历如下:```
January 2023
Su Mo Tu We Th Fr Sa
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
```

2024-11-06


上一篇:深入理解 C 语言中的 main() 函数

下一篇:C 语言呈现旗帜:打造数字艺术杰作