C语言程序:计算日期对应的星期几
以下是使用 C 语言编写的程序,它可以接受用户输入的日期,并确定那一天是星期几。
#include <stdio.h>
// 函数声明
int dayOfWeek(int year, int month, int day);
int main() {
int year, month, day;
// 获取用户输入
printf('请输入日期(年-月-日):');
scanf('%d-%d-%d', &year, &month, &day);
// 判断输入的日期是否合法
if (year < 1 || month < 1 || month > 12 || day < 1 || day > 31) {
printf('输入的日期无效!\n');
return 0;
}
// 调用函数获取星期几
int weekday = dayOfWeek(year, month, day);
// 打印结果
switch (weekday) {
case 0:
printf('星期日\n');
break;
case 1:
printf('星期一\n');
break;
case 2:
printf('星期二\n');
break;
case 3:
printf('星期三\n');
break;
case 4:
printf('星期四\n');
break;
case 5:
printf('星期五\n');
break;
case 6:
printf('星期六\n');
break;
default:
printf('计算出错!\n');
break;
}
return 0;
}
int dayOfWeek(int year, int month, int day) {
if (month < 3) {
month += 12;
year--;
}
int century = year / 100;
year %= 100;
int week = year + year / 4 + century / 4 - 2 * century + 26 * (month + 1) / 10 + day - 1;
week = (week % 7 + 7) % 7;
return week;
}
这个程序使用了一个名为dayOfWeek的函数来计算星期几。它采用了基姆拉尔森公式(Zeller's Congruence)来进行计算。用户需要按照年-月-日的格式输入日期,然后程序会返回对应的星期几。星期日为0,星期一到星期六分别为1到6。
请注意,这个程序没有对闰年进行严格的判断,对于非法日期的输入,它会简单地打印出'输入的日期无效!'。在实际应用中,可能需要对闰年和日期的合法性进行更加严格的检查。
原文地址: https://www.cveoy.top/t/topic/QTI 著作权归作者所有。请勿转载和采集!