生活数学算法(星期、属相、纪年、身份证)
生活数学算法(星期、属相、纪年、身份证)
目录
1、每年第一天星期公式  2
2、几月几日是星期几的算法  3
3、天干地支纪年及属相计算法  4
4、身份证号码编码规则及校验位校验算法  5
1、每年第一天星期公式:
[5(1)/4(1)/100(1)/400]%71w year year year =---+-+
其中 w 表示星期,w=0,1,2,3,4,5,6表示w=星期日、一、二、三、四、五、六      year 表示年份,“/”表示整除,“%”表示求余数。 证明:因为 1回归年为365.2422日,所以四年大概有一闰年。
闰年的规定:凡是年份能够被4整除、且不能被100整除的是闰年;凡是年份能被400整除的也是闰年;除此以外的年份都不是闰年。闰年366天,平年365天。    公元1年第一天(星期一),做为起始天,只要用“
这天与起始天之差”,与7求余数,当余数为0,则这天与起始天星期相同,也就是星期一;否则,这个余数+1就是这天的星期几。
元旦是几号假如没有闰年一说那么 year 年的第一天之前有多少天呢? (year-1)365
总结一下公式变成了 w=(year-1)365%7+1 闰年的数量为
(year-1)/4-(year-1)/100+(year-1)/400
在原有的基础上加上闰年的数量后,求星期的公式变为 w=[(year-1)365+(year-1)/4-(year-1)/100+(year-1)/400]%7+1 对公式进行优化一下 365=364+1
(year-1)365=(year-1)*364+(year-1)
364/7=52 我们要求余所以前面364那部分可以直接扔了。 公式变为
w=[5(year-1)/4-(year-1)/100+(year-1)/400]%7+1
知道了某年第一天星期几的话,后面的月份就可以根据累加计算出来的 例 2021年元旦是星期几
year-1=2021-1=2020
w=(5*2020/4-2020/100+2020/400)%7+1
=(2525-20+5)%7+1
=2510%7+1
=4+1
=5
2021年元旦是星期五
2、几月几日是星期几的算法
月份补数:(日期+月份补数)%7=星期
比如:2021年元旦是星期五,1号与五相差4,所以4是1月份补数。
2021年3月18日是星期四,18%7=4,所以0是3月份补数
从日历上容易看出,2021年各月份的补数
星期=(日期+月份补数)%7
例  2021年7月8日,星期=(8+3)%7=4,是星期四
平年基数:一月份补数+当月基数=当月补数
月基数=当月之前各月份余数之和对数7进行求余的余数。巧记: 6146每位数减1就是5035。闰年就在平年相应月基数的基础上+1就可以。
2021年1月的补数为4,所以8月份的补数为:2+4=6。
3、天干地支纪年及属相计算法
十大天干:甲乙丙丁戊己庚辛壬癸
十二地支:子(鼠) 丑(牛) 寅(虎)卯(兔)辰(龙)巳(蛇)午(马)未(羊)申(猴)酉(鸡)戌(狗)亥(猪)
干和支组合后用于纪年。即:将十天干和十二地支按顺序搭配组合成干支,用于纪年。按此排法,可构成60干支(即为一花甲)。续排下去又将恢复原状,周而复始,永无止尽。
六十甲子顺序
计算以及推算
天干=(公历年份)/10,所得余数
地支=(公历年份)/12,所得余数
公元后的换算表
计算时,年最后一位的数对应天干的编号;用年数除以12,得到的余数对应地支的编号,合起来就是该年的干支纪年法。
如2011年:最后一位是1,对应的天干的编号就是“辛”,再用2011除以12得到167余7,对应地支编号为“卯”合起来即2011年为“辛卯”年。
万年历查知1995年为乙亥年。先用1995年的尾数5查表得知天干为乙,用年份(1995)除以12的余数为3查表得知地支为亥,所以1995年为乙亥年。
公元前的换算表
例:公元前403年为戊寅年(资治通鉴卷第一)
先用年份的尾数3查表得知天干为戊,再用公元前403年除以12余数为7,查表得知地支为寅。那么公元前403年就是戊寅年了;
例:公元前369年为壬子年(资治通鉴卷第一)
先用年份的尾数9查表得知天干为壬,再用公元前369年除以12余数为9,查表得知地支为子。那么公元前369年就是壬子年了。
4、身份证号码编码规则及校验位校验算法
一、身份证号码作为独一无二代表公民信息的号码,它的组成是由一下的数字表示的:(1)第1、2位数字表示:所在省(直辖市、自治区)的代码;
(2)第3、4位数字表示:所在地级市(自治州)的代码;
(3)第5、6位数字表示:所在区(县、自治县、县级市)的代码;
(4)第7—14位数字表示:出生年、月、日;
(5)第15、16位数字表示:所在地的派出所的代码;
(6)第17位数字表示性别:奇数表示男性,偶数表示女性;
(7)第18位数字是校检码:根据前面十七位数字码,按照《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,根据精密的计算公式计算出来的。如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
二、校验码的计算方法:
1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。