注册 登录
编程论坛 汇编论坛

汇编 判断瑞年 (能整除400)和(不能整除100但是能整除4)

jieking00 发布于 2008-02-28 15:51, 2332 次点击
我在网上搞的都是只要能整除4就当作瑞年,老师不让过!
要(能整除400)OR(不能整除100 AND 能整除4)才是!
理由如下:一年实际的时间为365天5小时48分46秒,如果简单的每4年一个闰年,则每年时间误差会累积11分14秒。这个差数虽然不大,但累积下去,128年就差一天,400年就差三天多。
    而且这种简单的四年一闰的方法叫儒略历,从“耶稣降生”的那年算起的。这种历法用到十五世纪时,已与实际时间差出了十天多。
    所以,1582年3月1日,格里高利颁发了改历命令,内容是:

  一、1582年10月4日后的一天是10月15日,而不是10月5日,但星期序号仍然连续计算,10月4日是星期四,第二天10月15日是星期五。这样,就把从公元325年以来积累的老账一笔勾销了。

  二、为避免以后再发生春分飘离的现象,改闰年方法为: 凡公元年数能被4整除的是闰年,但当公元年数后边是带两个“0”的“世纪年”时,必须能被400整除的年才是闰年。

格里高利历的历年平均长度为365日5时49分12秒,比回归年长26秒。虽然照此计算,过3000年左右仍存在1天的误差,但这样的精确度已经相当了不起了。

  由于格里高利历的内容比较简洁,便于记忆,而且精度较高,与天时符合较好,因此它逐步为各国政府所采用。我国是在辛亥革命后根据临时政府通电,从1912年1月1日正式使用格里高利历的。
2 回复
#2
jieking002008-02-28 15:54
高手联系
QQ 517877353
#3
zhoulikelvjj2008-02-29 20:40
.data
year word ?

.code

    .........        ;输入年份,放入AX
    mov year,ax
    xor dx,dx
    
    mov bx,400
    div bx
    
    cmp dx,0
    jz ISALEAP
    
    mov ax,year
    xor dx,dx
    mov bx,100
    div bx
    cmp dx,0
    jz ISNOTLEAP
    
    mov ax,year
    xor dx,dx
    mov bx,4
    div bx
    cmp dx,0
    jz ISALEAP
ISNOTLEAP:
    ......
    jmp EXIT
ISALEAP: ......
EXIT:    .....
1