19 根据指定日期计算是星期几
请编写一 C 语言函数 get_weekday,该函数用于计算某一天是星期几。函数接收三个整型参数,分别表示年(year),月(month)与日(day);并返回一个整数表示星期几,用 0 表示星期日,1-6 表示星期一到星期六。
说明:已知公元元年(即 1 年)1 月 1 日是星期一。为简化问题,只考虑公元后的日期,即年 >= 1。
#include<stdio.h>
int main()
{
int y, c, m, d, w, year, month, day;
printf("请输入一个日期,空格隔开:\n");
scanf("%d%d%d", &year, &month, &day);
y = year % 100;//年,如2015,即年是15年
c = year / 100;//年份前两位,如2015即20
m = month; d = day;
if (m == 1 || m == 2) { //判断月份是否为1或2
y--;
m += 12;//某年的1、2月要看作上一年的13、14月来计算
}
w = y + y / 4 + c / 4 - 2 * c + 13 * (m + 1) / 5 + d - 1;//蔡勒公式的公式
while (w < 0) w += 7;//确保余数为正
w %= 7;
printf("输入的日期是星期%d", w);
return 0;
}
运行结果
还没有评论,来说两句吧...