万年历第一天编程怎么说

时间:2025-03-05 15:23:52 明星趣事

要计算万年历第一天的星期几,可以使用蔡勒公式(Zeller's Congruence)。以下是一个使用C语言编写的示例代码,用于计算并输出给定年份的第一天是星期几:

```c

include

// 函数声明

int isLeapYear(int year);

int dayOfYear(int year, int month, int day);

int main() {

int year, month, day;

// 输入年份、月份和日期

printf("请输入年份: ");

scanf("%d", &year);

printf("请输入月份: ");

scanf("%d", &month);

printf("请输入日期: ");

scanf("%d", &day);

// 计算并输出第一天是星期几

int dayOfWeek = dayOfYear(year, month, day);

const char *weekdays[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

printf("%d年%d月%d日是星期%s

", year, month, day, weekdays[dayOfWeek]);

return 0;

}

// 判断是否为闰年

int isLeapYear(int year) {

return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

}

// 计算给定日期是一年中的第几天

int dayOfYear(int year, int month, int day) {

int daysInMonth[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 };

int dayOfWeek = 0;

// 计算年份之前的所有年份的天数

for (int y = 1900; y < year; y++) {

dayOfWeek += isLeapYear(y) ? 366 : 365;

}

// 计算月份的天数

for (int m = 1; m < month; m++) {

dayOfWeek += daysInMonth[m];

}

// 加上当前月份的天数

dayOfWeek += day;

return dayOfWeek;

}

```

代码说明:

isLeapYear函数:

判断给定的年份是否为闰年。

dayOfYear函数:

计算给定日期是一年中的第几天。

main函数:

从用户输入获取年份、月份和日期,调用`dayOfYear`函数计算第一天是星期几,并输出结果。

使用方法:

1. 编译并运行上述代码。

2. 根据提示输入年份、月份和日期。

3. 程序将输出输入日期对应的第一天是星期几。

这个程序可以计算任何给定日期在万年历中的第一天是星期几。