C语言实现2020年每日计数递增并打印日期和星期
C语言实现2020年每日计数递增并打印日期和星期
本代码使用C语言实现一个计数器,从2020年1月1日开始,每秒递增一次,并打印对应日期的年、月、日、星期。
#include <stdio.h>
#include <unistd.h>
int main() {
int count = 10; // 初始计数
int year = 2020;
int month = 1;
int day = 10;
int weekday = 5; // 星期五
while (count <= 366) {
printf('%d年%d月%d日-星期', year, month, day);
switch (weekday) {
case 1:
printf('一');
break;
case 2:
printf('二');
break;
case 3:
printf('三');
break;
case 4:
printf('四');
break;
case 5:
printf('五');
break;
case 6:
printf('六');
break;
case 7:
printf('日');
break;
}
printf('\n');
// 计数递增
count++;
day++;
weekday++;
// 判断月份和闰年
if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) && day > 31) {
day = 1;
month++;
} else if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30) {
day = 1;
month++;
} else if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { // 闰年判断
if (day > 29) {
day = 1;
month++;
}
} else {
if (day > 28) {
day = 1;
month++;
}
}
}
// 判断年份
if (month > 12) {
month = 1;
year++;
}
// 判断星期
if (weekday > 7) {
weekday = 1;
}
// 暂停1秒
sleep(1);
}
return 0;
}
代码说明:
- 代码首先定义了几个变量,用来存储计数、年、月、日、星期等信息。
while循环用于控制计数,每循环一次,计数递增1,同时更新日期和星期信息。switch语句用来根据星期数值,打印对应的星期名称。if语句用来判断当前日期是否为月末,如果是,则更新月份,并将日期重置为1。sleep(1)函数用来暂停1秒,实现每秒递增的效果。
使用方法:
- 将代码保存为
.c文件,例如count.c。 - 使用编译器编译代码,例如
gcc count.c -o count。 - 运行编译后的可执行文件,例如
./count。
注意事项:
- 该代码使用了
sleep函数,需要包含<unistd.h>头文件。 - 代码假设初始日期为2020年1月10日,星期五。如需修改初始日期,只需修改
count、year、month、day和weekday的初始值即可。
其他改进:
- 可以使用更简洁的代码来判断闰年。
- 可以使用
time.h库函数来获取当前时间,并将其作为初始日期。 - 可以使用
strftime函数来格式化日期和时间输出。
希望以上信息对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/pbNH 著作权归作者所有。请勿转载和采集!