用C语言写一段万年历的代码
时间: 2024-04-10 17:33:12 浏览: 111
好的,下面是使用C语言编写的一个万年历代码示例:
```c
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
}
else {
return 0;
}
}
void printCalendar(int year, int month) {
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char *monthNames[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
int weekDay;
int i, j, day;
// 计算给定年份1月1日是星期几
weekDay = ((year - 1) * 365 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400 + 1) % 7;
// 判断是否为闰年,修改2月天数
if (isLeapYear(year)) {
daysInMonth[1] = 29;
}
// 打印日历标题
printf("%s %d\n", monthNames[month - 1], year);
printf("Sun Mon Tue Wed Thu Fri Sat\n");
// 打印月份前的空格
for (i = 0; i < weekDay; i++) {
printf(" ");
}
day = 1;
// 打印日期
for (i = weekDay; i < 7; i++) {
printf("%3d ", day);
day++;
}
printf("\n");
// 打印剩余日期
while (day <= daysInMonth[month - 1]) {
for (j = 0; j < 7 && day <= daysInMonth[month - 1]; j++) {
printf("%3d ", day);
day++;
}
printf("\n");
}
}
int main() {
int year, month;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printCalendar(year, month);
return 0;
}
```
这段代码使用了C语言来实现万年历的功能。它会要求用户输入一个年份和一个月份,然后打印出该月的日历。代码中使用了一个`isLeapYear`函数来判断是否为闰年,然后使用一个循环来打印出每个日期。打印出的日历以星期几为起始,并按照每周7天的格式排列。
阅读全文