| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2194 人关注过本帖
标题:判断是否是闰年
只看楼主 加入收藏
mengfanzhen1
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-7-2
收藏
 问题点数:0 回复次数:6 
判断是否是闰年

我运行的结果是YES!
NO!
请大家帮忙看下哪儿错了
stack segment stack
dw 256 dup(?)
stack ends

data1 segment
year dw 2000            
yes db "yes!",13,10,'$'
no db "no!",13,10,'$'
data1 ends

code1 segment
assume cs:code1,ds:data1
start:
mov ax,data1
mov ds,ax

mov ah,0ah
int 21h
mov year,dx

mov dx,offset year
mov ah,9
int 21h

mov dx,0
mov ax,year
mov bx,400
div bx
cmp bx,0
je _yes

mov dx,0
mov ax,year
mov bx,100
div bx
cmp bx,0
je _no

mov dx,0
mov ax,year
mov bx,4
div bx
cmp bx,0
je _yes

_no: mov dx,offset no
jmp show
_yes:mov dx,offset yes

show:mov ah,9
int 21h
mov ax,4c00h
int 21h
code1 ends
end start

搜索更多相关主题的帖子: 闰年 判断 
2007-07-02 13:04
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 
你保证你这个程序能运行否?
首先在yes和no那里应该是单引号
代码段也没有装载
在运行oah时,要另外开辟空间
你是想程序自己输出一个年份判断,还是程序中就已经定义了一个年份??

West and east,home is best……
2007-07-02 18:26
mengfanzhen1
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-7-2
收藏
得分:0 
是输入一个年份然后再判断是不是闰年
2007-07-02 20:16
mengfanzhen1
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-7-2
收藏
得分:0 
也能够运行
2007-07-02 20:17
justholdon
Rank: 1
等 级:新手上路
威 望:2
帖 子:69
专家分:0
注 册:2007-4-23
收藏
得分:0 

下边的我在这个论坛里找到的大侠写的!你看看吧!最好是编译一下,就明白了!
data segment ;定义数据段
infon db 0dh,0ah,'Please input a year: $'
Y db 0dh,0ah,'This is a leap year! $'
N db 0dh,0ah,'This is not a leap year! $'
w dw 0
buf db 8
db ?
db 8 dup(?)
data ends

stack segment stack
db 200 dup(0)
stack ends

code segment
assume ds:data,ss:stack,cs:code
start:mov ax,data
mov ds,ax

lea dx,infon ;在屏幕上显示提示信息
mov ah,9
int 21h

lea dx,buf ;从键盘输入年份字符串
mov ah,10
int 21h

mov cl, [buf+1]
lea di,buf+2
call datacate
call ifyears
jc a1

lea dx,n
mov ah,9
int 21h
jmp exit
a1: lea dx,y
mov ah,9
int 21h
exit: mov ah,4ch
int 21h

datacate proc near;
push cx;
dec cx
lea si,buf+2
tt1: inc si
loop tt1
;lea si,cx[di]
pop cx


mov dh,30h
mov bl,10
mov ax,1
l1: push ax
sub byte ptr [si],dh
mul byte ptr [si]
add w,ax
pop ax
mul bl
dec si
loop l1
ret
datacate endp


ifyears proc near
push bx
push cx
push dx
mov ax,w
mov cx,ax
mov dx,0
mov bx,4
div bx
cmp dx,0
jnz lab1
mov ax,cx
mov bx,100
div bx
cmp dx,0
jnz lab2
mov ax,cx
mov bx,400
div bx
cmp dx,0
jz lab2
lab1: clc
jmp lab3
lab2: stc
lab3: pop dx
pop cx
pop bx
ret
ifyears endp
code ends
end start


just hold on !
2007-07-02 21:28
mengfanzhen1
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-7-2
收藏
得分:0 

谢谢,各位

2007-07-04 07:13
jieking00
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-2-28
收藏
得分:0 
错了
错了,我用了 不行
理由如下:一年实际的时间为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日正式使用格里高利历的。
2008-02-28 14:13
快速回复:判断是否是闰年
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017504 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved