早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一条计算日期的式子求解释z=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7;这个是C程序,x是输入年数,z得到是这一年第一天是星期几.求解释这个是怎么算的.

题目详情
一条计算日期的式子求解释
z=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7;
这个是C程序,x是输入年数,z得到是这一年第一天是星期几.
求解释这个是怎么算的.
▼优质解答
答案和解析
z=( x + (x-1)/4 - (x-1)/100 + (x-1)/400 ) %7
1 首先是第1年(公元1年)的第一天是星期1
2 假如每年都是365天,那么每过一年就向后一天 365=364+1=7*N +1 ,所以第1年的第一天是星期1,第2年的第一天是星期2.
3实际上每年并非365天,在润年有366天,也就是说每过一个润年又要多推后一天 366=(7*N+1)+1,再由润年规律可以算出X年时从第1年到X年过了多少个润年" (x-1)/4 - (x-1)/100 + (x-1)/400 " ,为什么用X-1呢?因为是求X年的第一天,X-1代表的是过去的年数(从1年起)
润年规律是:非世纪年是4的倍数的为润年,世纪年是400的倍数的为润年,其余为平年.
(x-1)/4 - (x-1)/100 + (x-1)/400
4的倍数 世纪年 400的倍数