一、日期的特征数公式
如果日期是1900年3月1日及之后,年月日分别是year,month,day,则:
N = 1461 x f(year, month) / 4 + 153 x g(month) / 5 + day
其中:
如果month<=2,则 f(year, month) = year - 1
如果month>2,则 f(year, month) = year
如果month<=2,则 g(month) = month + 13
如果month>2,则 g(month) = month + 1
如果日期是1800年3月1日至1900年2月28日,则N为上面结果加1
如果日期是1700年3月1日至1800年2月28日,则N为上面结果加2
二、用特征数求某日的星期数
将其特征数减去621,049,再除7的余数,就是星期数,其中0为星期日,1为星期一,余类推。
例如2004.8.8,则
N = 1461 x f(2004, 8) / 4 + 153 x g(8) / 5 + 3
= (1461 x 2004) / 4 + (153 x 9) / 5 + 3
= 2,927,844 / 4 + 1,377 / 5 + 3
= 731,961 + 275 + 3
= 732,239
732,239-621,049=111,190
除7余2,所以这一天是星期二。
三、用特征数求两天之间的天数
将两天的特征数相减,就是它们相差的天数。
如:2005.2.22与2004.8.8
则:
N1 = 1461 x f(2004, 8) / 4 + 153 x g(8) / 5 + 3
= (1461 x 2004) / 4 + (153 x 9) / 5 + 3
= 2,927,844 / 4 + 1,377 / 5 + 3
= 731,961 + 275 + 3
= 732,239
N2 = 1461 x f(2005, 2) / 4 + 153 x g(2) / 5 + 21
= (1461 x 2004) / 4 + (153 x 15) / 5 + 21
= 2,927,844 / 4 + 2295 / 5 + 21
= 731,961 + 459 + 21
= 732,441
相差天数 = N2 - N1
= 732,441 – 732,239
= 202