作业帮 > 综合 > 作业

C语言 输入某人的出生日期,计算并显示其出生的当天是星期几.(注:要计算出生日是星期几,首先要计算

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 02:07:17
C语言 输入某人的出生日期,计算并显示其出生的当天是星期几.(注:要计算出生日是星期几,首先要计算
C语言
输入某人的出生日期,计算并显示其出生的当天是星期几.(注:要计算出生日是星期几,首先要计算出出生前一年的12月31日是星期几,其计算公式如下((year—1)*365+[(year-1)/4]-[(year-1)/100]+[(year-1)/400])%7,如果是闰年出生的且出生月份大于2月,则总天数要加1.)
关键是没有看明白那个式子是什么意思,求指教
理解这段代码的意思有一个前提:year是从公元元年开始计算的,而公元元年的第一天是星期日.
所以上述这个式子的意思就是:
year-1这么多年一共有多少天呢?假设每年都是平年,那么一共有:(year-1)*365天
然后加上year-1年中闰年的个数就行了(多一个闰年就多加一天)
那么闰年的计算方法是:
能被4整除:+(year-1)/4
且不能被100整除:-(year-1)/100
或者能被400整除的也是闰年:+(year-1)/400
最后得到了year-1年一共是多少天,然后对7取模,如果余数是0,就是星期六(一周的最后一天),余数是1就是星期日(一周的第一天)
再详细说下:余数是0的情况就是说:year-1这么多年的天数刚好能够分配给整数个星期,即刚好能被7整除.所以作为12月31日这一天,就应该是最后一个星期的最后一天,那么应该是周六.
其余情况可以类推了.