上一篇
如何用c语言编写日历
- 行业动态
- 2024-03-23
- 1
在C语言中,编写日历程序可以通过多种方式实现,这里我将介绍一种简单的方法,通过使用数组和循环来实现,我们需要创建一个包含12个月的字符串数组,然后使用一个嵌套循环来遍历年份和月份,最后输出对应的日历。
以下是一个简单的C语言日历程序:
#include <stdio.h> int main() { int year, month; printf("请输入年份: "); scanf("%d", &year); printf("请输入月份: "); scanf("%d", &month); // 定义一个包含12个月的字符串数组 char *months[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; // 获取当前年份和月份的第一天是星期几(0表示星期日,1表示星期一,以此类推) int first_day_of_week = (year 1900) % 4 + 1; // 1900年是闰年,所以需要特殊处理 int first_day_of_month = (year 1900) * 365 + (year 1900) / 4 (year 1900) / 100 + (year 1900) / 400 + 1 + first_day_of_week; if (month > 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) { first_day_of_month++; } for (int i = 1; i < month; i++) { first_day_of_month += 31; if (i == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) { first_day_of_month++; } else if (i == 4 || i == 6 || i == 9 || i == 11) { first_day_of_month += 30; } else { first_day_of_month += 28; } } first_day_of_month; // 因为数组下标从0开始,所以需要减1 // 输出日历标题和表头 printf("日t一t二t三t四t五t六 "); for (int i = 0; i < first_day_of_week; i++) { printf("t"); } for (int i = 1; i <= days_in_month[month]; i++) { printf("%dt", i); if ((i + first_day_of_week) % 7 == 0) { printf(" "); } } printf(" "); return 0; }
这个程序首先获取用户输入的年份和月份,然后计算该年份和月份的第一天是星期几,接下来,我们使用一个循环来计算每个月的天数,并根据闰年进行调整,我们输出日历标题和表头,以及对应的日期。
注意:这个程序没有考虑每个月的天数可能不同(例如2月有28天或29天),也没有考虑每个月的第一天可能是上个月的最后一天,如果需要更精确地显示日历,可以使用time.h
库中的localtime
函数来获取当前日期,并根据需要调整输出。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/261362.html