作者:樱花落下的那天 | 来源:互联网 | 2024-12-07 11:23
本文介绍了一个使用C语言编写的程序,该程序能够接收用户输入的年、月、日信息,并准确地计算出这一天是星期几。通过合理的算法和代码结构,确保了程序的高效性和准确性。
在C语言中,可以通过编写一个简单的程序来计算给定日期是星期几。下面是一个示例程序,它首先检查输入的年份是否为闰年,然后根据月份天数累加,最终计算出从公元元年至输入日期的总天数,进而确定这一天是星期几。
以下是具体的代码实现:
#include
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
return 1;
else
return 0;
}
int main() {
int year, month, day, totalDays = 0;
printf("请输入年、月、日(格式:YYYY,MM,DD):");
scanf("%d,%d,%d", &year, &month, &day);
// 计算到输入日期的总天数
for (int i = 1; i if (isLeapYear(i))
totalDays += 366;
else
totalDays += 365;
}
// 加上当年的天数
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (isLeapYear(year))
daysInMonth[2] = 29;
for (int i = 1; i totalDays += daysInMonth[i];
totalDays += day;
// 计算星期几,假设公元元年1月1日是星期一
int weekDay = (totalDays + 5) % 7; // 因为公元元年1月1日是星期一,所以需要+5调整
printf("%d年%d月%d日是星期%d\n", year, month, day, weekDay);
return 0;
}
上述代码首先定义了一个辅助函数isLeapYear
用于判断某年是否为闰年。主函数中,通过循环计算从公元元年到输入年份之间的所有天数,包括处理闰年的情况。接着,根据输入的月份,累加每个月的天数至输入的日期。最后,通过计算总天数模7的结果,得到输入日期是星期几。