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
Java方法栈日志的艺术:从错误定位到性能优化的深度指南
https://www.shuihudhg.cn/133725.html
PHP 获取本机端口的全面指南:实践与技巧
https://www.shuihudhg.cn/133724.html
Python内置函数:从核心原理到高级应用,精通Python编程的基石
https://www.shuihudhg.cn/133723.html
Java Stream转数组:从基础到高级,掌握高性能数据转换的艺术
https://www.shuihudhg.cn/133722.html
深入解析:基于Java数组构建简易ATM机系统,从原理到代码实践
https://www.shuihudhg.cn/133721.html
热门文章
C 语言中实现正序输出
https://www.shuihudhg.cn/2788.html
c语言选择排序算法详解
https://www.shuihudhg.cn/45804.html
C 语言函数:定义与声明
https://www.shuihudhg.cn/5703.html
C语言中的开方函数:sqrt()
https://www.shuihudhg.cn/347.html
C 语言中字符串输出的全面指南
https://www.shuihudhg.cn/4366.html