用c语言实现输出2025年日历(从1月1日周三开始)
时间: 2024-09-07 13:02:50 浏览: 99
要用C语言输出2025年的日历,并从1月1日周三开始,你需要编写一个程序来计算每个月的天数,同时考虑到闰年的情况。下面是一个简单的C语言程序示例,用于生成和打印2025年的日历。
```c
#include <stdio.h>
// 函数用于判断是否为闰年
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 函数用于计算某年某月的天数
int getDaysOfMonth(int year, int month) {
int daysOfMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (month == 2 && isLeapYear(year)) {
return 29;
}
return daysOfMonth[month - 1];
}
// 函数用于计算从年初到指定月的总天数
int totalDaysUntilMonth(int year, int month) {
int days = 0;
for (int i = 1; i < month; ++i) {
days += getDaysOfMonth(year, i);
}
return days;
}
// 函数用于打印每个月的日历
void printMonth(int year, int month, int startDay) {
printf(" %d年 %d月\n", year, month);
printf("日 一 二 三 四 五 六\n");
int days = getDaysOfMonth(year, month);
for (int i = 0; i < startDay; ++i) {
printf(" ");
}
for (int day = 1; day <= days; ++day) {
printf("%2d ", day);
if ((day + startDay) % 7 == 0) {
printf("\n");
}
}
printf("\n\n");
}
int main() {
int year = 2025;
int startDay = 3; // 1月1日是星期三,用数字3表示(星期天为0,星期一为1,依此类推)
for (int month = 1; month <= 12; ++month) {
printMonth(year, month, startDay);
startDay = (startDay + getDaysOfMonth(year, month)) % 7;
}
return 0;
}
```
这个程序首先定义了几个函数来判断闰年、获取某个月的天数以及计算年初到某月的总天数。`printMonth`函数用于打印每个月的日历,而`main`函数则循环遍历2025年的每个月,计算起始星期并打印每个月的日历。
阅读全文