搜档网
当前位置:搜档网 › 汇编显示计算机时间和日期(上午或下午、星期几)

汇编显示计算机时间和日期(上午或下午、星期几)

汇编显示计算机时间和日期(上午或下午、星期几)
汇编显示计算机时间和日期(上午或下午、星期几)

微机原理与接口技术编程作业

学院:xxxx学院班级:xxxxxxxxxx学号:xxxxxxxxxx姓名:xxx

【题目要求】

根据当前计算机的时间和日期,显示上午(AM)或下午(PM),并显示星期几。【设计思路】

通过使用软中断指令“INT 21H”进行系统功能调用,获取系统时间和日期。当AH=2AH时,可获取系统日期,有

CX=year(1980~2099)

DH = month (1~12)

DL = day (1~31)

AL = day of the week (0~6, 0=Sunday, 1=Monday, etc.)

当AH=2CH时,可获取系统时间,有

CH=hours(0~23)

CL = minutes (0~59)

DH = seconds (0~59)

DL = hundredths of seconds (0~99)

将对应的寄存器内容取出,二进制转换为ASCII码,再输出即可获知当前系统时间与日期。

其中,当小时(hours)值小于等于12时为上午(AM),大于12时为下午(PM),大于12时显示的小时数值与12进行作差操作。星期几可由AH=2AH时系统功能调用所得的AL数值对应得到,选取相符的字符串进行显示即可。

【源码】

.MODEL SMALL

.DA TA

WEEK DB 'Sunday$','Monday$','Tuesday$','Wednesday$','Thursday$','Friday$','Saturday$'

.CODE

START: MOV AX,@DA TA

MOV DS,AX

HOUR:

MOV AH,2CH ; To get system time

INT 21H

MOV AL,CH ; Hour is in CH

MOV CH,1

CMP AL,12 ; To determine AM or PM

JLE NEXT

SUB AL,12

MOV CH,2

NEXT:AAM

MOV BX,AX

CALL DISP

MOV DL,':'

MOV AH,02H

INT 21H

MINUTE:

MOV AL,CL ; Minute is in CL AAM

MOV BX,AX

CALL DISP

MOV DL,':'

MOV AH,02H

INT 21H

SECOND:

MOV AL,DH ; Second is in DH AAM

MOV BX,AX

CALL DISP

MOV DL,' '

MOV AH,02H

INT 21H

MOV DL,'P'

CMP CH,2 ;To determine AM or PM JE PM

MOV DL,'A'

PM:MOV AH,02H

INT 21H

MOV DL,'M'

MOV AH,02H

INT 21H

MOV DL,','

MOV AH,02H

INT 21H

MOV DL,' '

MOV AH,02H

INT 21H

MOV AH,2AH ;To get system date

INT 21H

CMP AL,6 ;Day of the week is in AL (0-6) JE Sat

CMP AL,5

JE Fri

CMP AL,4

JE Thur

CMP AL,3

JE Wed

CMP AL,2

JE Tues

CMP AL,1

JE Mon

CMP AL,0

JE Sun

Sun:LEA DX,WEEK

JMP IFEND

Mon:LEA DX,WEEK+7

JMP IFEND

Tues:LEA DX,WEEK+14

JMP IFEND

Wed:LEA DX,WEEK+22

JMP IFEND

Thur:LEA DX,WEEK+32

JMP IFEND

Fri:LEA DX,WEEK+41

JMP IFEND

Sat: LEA DX,WEEK+48

JMP IFEND

IFEND:MOV AH,09H

INT 21H

MOV DL,','

MOV AH,02H

INT 21H

MOV DL,' '

MOV AH,02H

INT 21H

;Day Part

DAY:

MOV AH,2AH ; To get system date

INT 21H

MOV AL,DL ; Day is in DL

AAM

MOV BX,AX

CALL DISP

MOV DL,'/'

MOV AH,02H

INT 21H

MONTH:

MOV AL,DH ; Month is in DH

AAM

MOV BX,AX

CALL DISP

MOV DL,'/'

MOV AH,02H

INT 21H

YEAR:

ADD CX,0F830H ;To negate the effects of 16bit value

MOV AX,CX ; since AAM is applicable only for AL (YYYY -> YY) AAM

MOV BX,AX

CALL DISP

MOV AH,4CH ; To Terminate the Program

INT 21H

;Display Part

DISP PROC

MOV DL,BH ; BH Part

ADD DL,30H ; ASCII Adjustment

MOV AH,02H ; To print in DOS

INT 21H

MOV DL,BL ; BL Part

ADD DL,30H ; ASCII Adjustment

MOV AH,02H ; To print in DOS

INT 21H

RET

DISP ENDP ; End Disp Procedure

END START

【运行结果】

编译器masm编译结果和连接器连接结果如下图所示。

可执行文件运行结果如下:

从左至右依次为:时间(包含上下午的区分)、星期几和日期(日/月/年),满足题目要求。

周期问题——《巧算“星期几”》

周期问题——《巧算“星期几”》 教学目标: 1、根据时间、日期的知识,解决一些时间问题。 2、掌握计算共经过的天数: 从头到尾总天数除以7得出的余数是几,就从第一周期第一项开始数几,即可推知是星期几。算头不算尾、算尾不算头的总天数除以7得出的余数是几,就从第一周期第一项的下一项开始数几,推知是星期几。 教学过程: 一、实践畅销 1、探究1: 平南小学从2011年12月1日到2011年12月20日举行第三届英语节活动,活动一共举行了多少天? T::请独立思考,比一比谁能快速得出结果? S1:20天S2:19天 T:谁的想法对?用什么方法验证? S:可以将日期列一列。 S:可以列算式20-1=19 19+1=20 T:为什么要加1?(头尾都要算,所以要加1) 小结:计算从某年(月日)起到某年(月、日)共经过的天数,一般要连头带尾算,也就是经过的年数(天数)=结尾数-开始数+1。 板书:经过的年数(天数)=结尾数-开始数+1 2、试一试:根据上面的方法,算算经过的天数。 2012年的春节从2012年1月22日到2012年1月31日,经过了()天。 2008年3月10日到2008年4月10日,经过了()天。 T:先独立思考,再将你的想法和同桌交流。 反馈:1)31-22+1=10天2)31-10+10+1=32天 3、探究2: 2012年第二学期从2月7日开学到2012年6月25日放假,一共有()天。 T:这道题的天数较多,你准备用什么办法解决? 先试一试,填一填,再集体反馈 反馈:可以用分段推算的方法。 注意考虑2012年是闰年,注意考虑到2月份有29天。 可以将这些天分段如下: 第一段:2月7日到2月29日,共23天。 第二段:3月共31天。 第三段:4月共30天 第四段:5月共31天 第五段:6月1日到6月25日共25天。 合计天数:23+31+30+31+25=140天 追问:如果开学那天是周二,放假那天是周几? S1:140/7=20,没有余数,所以是周二 S2:应该是周一。 T:有两种意见,哪一种对呢? 我们以一个周期来观察,可以发现第八天时,会与第一天的周几重复,也就是说当余数为1

小学趣味数学——根据年、月、日推算是星期几的公式

小学趣味数学——根据年、月、日推算是星期几的公式 有时候,想知道公元某年某月某日是星期几,可以用下面的公式算出来: 这里的方括号表示只取商的整数部分。式中: x :这一年是公元多少年。 y :这一天是这一年的第几天。 s :星期几。不过要先除以7,再取余数。没有余数是星期日,余数是1、2、3、4、5、6,分别是星期一、星期二、星期三、星期四、星期五、星期六。 比如,2010年国庆节(10月1日)是星期几? x =2010。 y =31+28+31+30+31+30+31+31+30+1=31×5+30×3+28+1=274。 s =2010-1+502-20+5+274=2770,2770÷7余5。 所以,2010年国庆节是星期五。 y x x x x s +?? ????-+??????--??????-+-=40011001411

如果,你只想知道这个公式怎样用,到这儿就可以了。而要想知道这个公式的道理是什么,那可就说来话长了。 “星期制”是公元321年3月7日,古罗马皇帝君士坦丁宣布开始实行的,并且规定这一天为星期一。实际上,就是把公元元年元旦(公元1年1月1日)规定为星期一。(相当于公式中的x=1,y=1,所以s=1。) 通常1年有365天,365÷7=52……1,就是说比52个星期多1天。所以,同一个日期,下一年是星期几,就要比上一年向后推1天。比如,上一年元旦是星期三,下一年元旦就是星期四。 “通常每过1年,把同一日期是星期几向后推1天”,是理解这个公式的关键。 要想知道某年某月某日是星期几,首先,要知道这一年元旦以公元元年元旦是星期一为起点,已经把星期几向后推了多少天,还要知道这一天是这一年的第几天。而要知道这一年元旦已经把星期几向后推了多少天,可以从公元元年到这一年已经过了多少年算起,先按1年向后推1天计算,再根据闰年的规定进行调整。 闰年的规定是:年份是4的倍数的一般都是闰年,其中,年份是整百数的一般不是闰年,只有年份是400的倍数的才

C实现的根据日期得到今天是星期几

算法如下: 基姆拉尔森计算公式: W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方: 把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。 但是在测试的时候发现有点出入,就是公式存在一点问题,得稍做修改: W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 +1 代码如下: #region根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);) ///

///根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);) /// ///年 ///月 ///日 /// public static string CaculateWeekDay(int y,int m, int d) { if(m==1) m=13; if(m==2) m=14; int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1; string weekstr=""; switch(week) { case 1: weekstr="星期一"; break; case 2: weekstr="星期二"; break; case 3: weekstr="星期三"; break; case 4: weekstr="星期四"; break; case 5: weekstr="星期五"; break; case 6: weekstr="星期六"; break; case 7: weekstr="星期日"; break; }

单片机LCD1602显示年月日时钟带星期和闹钟

长春工业大学 测控技术与仪器专业 单片机LCD1602显示年月日时钟带星期和闹钟,可识别闰年 下载文档即可完全复制 #include #define uchar unsigned char #define uint unsignedint

sbitlcdrs = P0^7; //液晶引脚定义 sbitled_cs = P0^6; sbitlcden = P0^5; sbit boom = P3^6; sbit key1 = P3^5; sbit key2 = P3^4; sbit key3 = P3^3; sbitkeyE = P3^2; uchar num,key1num,key2num,count,hour,min,sec,day,mon,year,shi,fen,miao ,week; char ye1,ye2; uchar code cg_1602[]={ 0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02, 0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00, 0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00, 0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,};//"年月日" /*延时函数*/ void delay(uintxms) { uinti,j; for(i=xms;i>0;i--)

for(j=114;j>0;j--); } /*1602液晶*/ void write_com(uchar com)//写命令{ lcdrs=0; lcden=0; P2=com; delay(5); lcden=1; delay(5); lcden=0; } void write_data(uchar date)//写数据{ lcdrs=1; lcden=0; P2=date; delay(5); lcden=1; delay(5); lcden=0;

(完整word版)三年级奥数年月日(时钟问题)

思维拓展四:年月日问题 一、知识要点 (一)天数的计算方法:(1)数天数(2)用加减法计算。所求的天数经过不同的月份时,要采用分段计算的方法。 (二)求某个月份中的一段时间的总天数方法:“尾日期-首日期+1” (三)周期问题的解题方法: (1)找出排列规律,确定排列周期。 (2)确定排列周期后,用总数除以周期。 ①如果没有余数,正好有整数个周期,那么结果为周期里的最后一个 ②如果有余数,即比整数个周期多n个,那么结果为下一个周期的第n个。 二、典型例题 例【2】2008年元旦是星期二,那么,2012年元旦是星期几? 分析:从2008年元旦到2012年元旦这四年中,2008年是闰年,其余三年是平年.四年的天数加上2012年元旦这一天,共有 366+365×3+1=1462(天) 一共是1462÷7=208(周)……6(天) 从星期二开始算,第六天是星期日.所以,2012年元旦是星期日.

注:一个星期有7天一个月最少有28天,最多有31天,是4个星期零3天(31÷7=4……3)。也就是说,一个月中无论是星期几,最少有4个,最多有5个。

例【6】镜子里的时间 前几天,我对着镜子整理衣服的时候,意外的发现,镜子里闹钟的指针竟然与桌上闹钟的指针正好相反。我睁大眼睛看了好一会。之后,我拨弄着闹钟发现:当我把时间拨到了3时的时候,镜子里反射出的时间不是3时而是9时!我很好奇,又把时间拨到1时,发现镜子里的时间指向11时;然后把时间拨到3时30分,镜子里的时间是8时30分。我又这样反复试验,观察了好几次,惊喜的发现了一个规律,那就是: 每次实际时间和镜子里的时间,相加都是12时! 【巩固】 (1)小亮要画一幅画,刚开始画时,他从镜子中看到钟面上的时刻是6时45分,当他画完时,看真正的时钟也是6时45分,小亮画画用了多长时间? (2)早上醒来,明明从镜子里看到钟面上的时刻是6:30.你知道钟面上的实际时刻是多少吗? 【练习】 1.在一年里连续两个月共有60日的是哪两个月? 2.如果今天是星期二,那么从明天开始,第32天是星期几? 3.昨天是9日,今天是星期三,29日是星期几

四年级奥数日期和时间地计算含问题详解

日期和时间的计算 一、学习目标 1.学会在日期的计算中发现和识别呈周期性变化的规律,并能列式解答. 2.学会时间计算的一般方法,能说明解答的基本依据. 3.感受简单的分析、推理等方法. 二、内容提要与方法点拨 1.被除数=商×除数+余数,余数要小于除数. 2.找准有一定变化规律的周期,如1年有12个月,1周有7天,1小时是60分,1分是60秒等. 三、例题选讲 例12008年元旦是星期二,那么,2012年元旦是星期几? 解:从2008年元旦到2012年元旦这四年中,2008年是闰年,其余三年是平年.四年的天数加上2012年元旦这一天,共有 366+365×3+1=1462(天) (或365×4+1+1) 一共是1462÷7=208(周)……6(天) 从星期二开始算,第六天是星期日.所以,2012年元旦是星期日. 这道题还可以这样算: 365÷7=52……1,平年有52周余1天,闰年就有52周余2天. 直接算出每一年的天数除以7的余数的和 2+1×3+1=6,从星期二开始算,第六天是星期日. 有一类数学问题是围绕每月天数、日期数和星期几的天数等关系展开的.解答这类问题的焦点往往在它的余数上. 我们知道,在一年的12个月中,每个月最少有28天,最多有31天,一个星期有7天.而 一个月的天数÷7 = 4……(余数),余数可以是0、1、2、3. 下面,我们根据这个除法算式进一步弄清有关的几个数量之间的关系. (1)由上式知,一个月的星期几的个数最少有4个,最多有5个. (2)当余数为0时,即这个月只有28天(平年的2月),那么,这个月所

有的星期几分别有4个.同时,这个月的第一天是星期几,最后一天就是星期几 的前一天.例如,2月1日是星期二,2月28日就是星期一. (3)当余数为1、2、3时,即这个月多于28天.多出了几天,就有几个星 期几是5个的,而且是连续的.例如,7月有31天,当7月1日是星期二时,7 月28日是星期一,7月29日、30日、31日就分别是星期二、三、四,则这个 月的星期二、三、四各有5个. 多出的几天及对应是星期几也可以放到月头考虑,在此不一一分述. 想一想:某年的六月一日是星期五,这个月有5个星期()和星期(). 例2某年的3月份正好有4个星期三和4个星期六,那么这个月的1日是星期几? 有4个星期还多3天。这3天是连续的而 且不能是星期三和星期六,因此,也不可 能是在星期三和星期六之间的星期四和星 期五。这样,只能是星期一、星期二和星 期日。 即这3天按顺序是星期日、一、二(29日、30日、31日)。所以,三月一 日是星期日(如图)。 例3有一个月,星期四的天数比星期三多,星期日的天数比星期六少,这个月的20日是星期几? 解:要求某月某日是星期几,一般可以由这个月的第一日或最后一日是星期 几推出. 由条件“星期四的天数比星期三多,星期日的天数比星期六少”可知这个月 的星期三、星期日只有4个,而星期四、星期六都有5个.从而推知在星期四和 星期六之间的星期五也应有5个.这个月有31天,31÷7=4…3,而且1日是星期 四,31日是星期六. 再由1日是星期四知,8日、15日、22日也是星期四,得知20日就是星期 二.或由31日是星期六,31-20-7=4,推算出20日是星期二(如图).

最新数学运算之星期日期问题

数学运算之星期日期问题 华图教育左宏帅 谈到星期日期问题,就涉及到大、小年和大、小月,大、小年也就是平年和闰年,大家都知道四年一闰、百年不闰、四百年闰,3200年不闰。大、小月的来历呢?就是公元前46年,罗马统帅儒略凯撒制定历法。由于他出生在7月,为了表示他的伟大,决定将7月改为“儒略月”,连同所有的单月都规定为31天,双月为30天。这样一年多出一天,2月是古罗马处死犯人的月份,为了减少处死的人数,将2月减少1天,为29天。 凯撒的继承人奥古斯都出生在8月,他仿照恺撒的做法,把8月增加1天,定为“奥古斯都月”,并把10月、12月也改为31天,将9月、11月改为30天。全年又多出1天,他又从2月减少了1天,于是2月变成了28天,到闰年才29天。这样沿袭下来,就有7月前单月为大月,7月后双月为大月,二月28天。 这里常见的题目就是告诉我们某年某月某日是周几,过几年后的同样的月日是周几?我们都知道平年365天,除以7商是52余数为1,一个季度是几周呢?这样不好记得话,扑克牌我们都很熟悉吧,除了大小王一共也是52张,4个花色正好对应4个季度。 例如:2008年8月21日星期四 2009年8月21日星期几? 2011年8月21日星期几? 2015年8月21日星期几? 2075年8月21日星期几? 2079年8月21日星期几? 2009年8月21日经过一年,没有2月29日,加1,则为星期五。 注意1:计算时不是加闰年,而是加2月29日,因此做题时关键是看有无2月29日。 2011年8月21日经过三年,其中无2月29日,故为星期日。 2015年8月21日在2011年8月21日的基础上又经过四年,必然有一2月29日,故加5,为星期五。 2075年8月21日在2015年8月21日的基础上又经过60年,必然有60÷4=15个2月

三年级下册数学素材-根据年、月、日推算是星期几的公式 人教新课标(2014秋)

人教版小学三年级数学下册根据年、月、日推算是星期几的公式 有时候,想知道公元某年某月某日是星期几,可以用下面的公式算出来: 这里的方括号表示只取商的整数部分。式中: x :这一年是公元多少年。 y :这一天是这一年的第几天。 s :星期几。不过要先除以7,再取余数。没有余数是星期日,余数是1、2、3、4、5、6,分别是星期一、星期二、星期三、星期四、星期五、星期六。 比如,2010年国庆节(10月1日)是星期几? x =2010。 y =31+28+31+30+31+30+31+31+30+1=31×5+30×3+28+1=274。 s =2010-1+502-20+5+274=2770,2770÷7余5。 所以,2010年国庆节是星期五。 如果,你只想知道这个公式怎样用,到这儿就可以了。y x x x x s +?? ????-+??????--??????-+-=40011001411

而要想知道这个公式的道理是什么,那可就说来话长了。 “星期制”是公元321年3月7日,古罗马皇帝君士坦丁宣布开始实行的,并且规定这一天为星期一。实际上,就是把公元元年元旦(公元1年1月1日)规定为星期一。(相当于公式中的x=1,y=1,所以s=1。) 通常1年有365天,365÷7=52……1,就是说比52个星期多1天。所以,同一个日期,下一年是星期几,就要比上一年向后推1天。比如,上一年元旦是星期三,下一年元旦就是星期四。 “通常每过1年,把同一日期是星期几向后推1天”,是理解这个公式的关键。 要想知道某年某月某日是星期几,首先,要知道这一年元旦以公元元年元旦是星期一为起点,已经把星期几向后推了多少天,还要知道这一天是这一年的第几天。而要知道这一年元旦已经把星期几向后推了多少天,可以从公元元年到这一年已经过了多少年算起,先按1年向后推1天计算,再根据闰年的规定进行调整。 闰年的规定是:年份是4的倍数的一般都是闰年,其中,年份是整百数的一般不是闰年,只有年份是400的倍数的才是闰年。

日期时间显示程序_廖海洋

信息科学与技术学院 程序设计基础课程设计报告 题目名称:日期时间显示程序 学生姓名:廖海洋 学号: 2014508010 专业班级: 14计科1班 指导教师:郭理 2015年 6 月 17 日

目录 1 课程设计题目与要求 (3) 1.1设计题目 (3) 1.2设计要求 (3) 2 总体设计 (4) 2.1 总体功能框架 (4) 2.2 数据结构概要设计 (5) 3 详细设计 (6) 3.1数据结构详细设计 (6) 3.2系统功能详细设计 (8) 4 运行结果 (17) 5 课程设计总结 (20) 5.1 编程中的问题及解决方法 (20) 5.2 小结 (20) 5.3 心得体会 (20) 5.4 程序设计方法 (21) 参考文献 (21) 附:源代码 (22)

1 课程设计题目与要求 1.1设计题目 C++题目11:日期时间显示程序: 编一应用程序,输入年、月、日、时、分、秒,在屏幕上模拟显示一电子计时器,不断输出下一秒的时间和日期,以及格林威治的日期和时间。 注意,当对日期增加1天后,会涉及所谓的"进位"问题:首先算出本"日"所在的月份具有的天数N,若加1之后的"日"数值超过所在的月份具有的天数N时,"进位"到月,而月份若超过12时还要"进位"到年。 1.2设计要求 (1)定义一个时间结构体类型time,能提供时、分、秒组成的时间,并提供时间增加的方法(按秒)。 (2)定义一个日期结构体类型Date,记录年、月、日,并提供日期增加的方法(按天)。 (3)定义个日期时间结构体类型DateTime,除具有年、月、日、时、分、秒外,还增加国名和与格林威治时间的差。 思考:可对该类增加你所考虑到的其他功能,如,对日期进行输入,计算二日期的间隔天数,计算某日期为星期几,打印对象当前数据的y年m月的月历,一次增加若干天,对两个日期进行其他比较运算等。

根据公历日期计算星期的公式

根据公历日期计算星期的公式 蔡勒(Zeller)公式:是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几。 公式如下: W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1 公式中的符号含义如下: w:星期;(w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六) c:世纪(前两位数) y:年(后两位数) m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算) d:日 [ ]代表取整,即只要整数部分。 下面以中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 =49+[49/4]+[20/4]-2×20+[26×(10+1)/10]+1-1 =49+[12.25]+5-40+[28.6] =49+12+5-40+28 =54 (除以7余5) 即2049年10月1日(100周年国庆)是星期五。

再比如计算2006年4月4日,过程如下: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 =6+[6/4]+[20/4]-2*20+[26*(4+1)/10]+4-1 =-12 (除以7余2,注意对负数的取模运算!) 不过,以上的公式都只适合于1582年(我国明朝万历十年)10月15日之后的情形。 罗马教皇格里高利十三世在1582年组织了一批天文学家,根据哥白尼日心说计算出来的数据,对儒略历作了修改。将1582年10月5日到14日之间的10天宣布撤销,继10月4日之后为10月15日。 后来人们将这一新的历法称为“格里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。 若要计算1582年10月4日及之前的日期是星期几,则公式为: y+[y/4]+[c/4]-2c+[26(m+1)/10]+d+3

计算星期几的方法

计算星期几的方法 计算任何一个日期是星期几的方法 蔡勒公式 W = [C/4] - 2C + y + [y/4] + [13 X(M+1) / 5] + d - 1 C是世纪数减1 , y是年份后两位,M是月份(从3月开始,1月和2月要按上一年的13月和14月来算,这时C和y 均按上一年取值),d 是日数。求出W的值,再除以7,余几就是星期几,余数为0,则是星期天。 注意:[…]表示只取整数部分 注意:公式中如计算得出负数,不能按习惯的余数的概念 求余数,只能按数论中的余数的定义求余。为了方便计算,我 们可以给它加上一个7的整数倍,使它变为一个正数,比如加 上7、14、21、28等,得到一个整数后,再除以7,余几,

说明这一天是星期几。 例1 : 2004年的9月1日是星期几? C=20 y=04 M=9 d=1 W = [C/4] - 2C + y + [y/4] + [13 x(M+1) / 5] + d - 1 =[20/4] - 2 X20 + 04 + [04/4] + [13 X(9 + 1 ) /5] + 1 =5 - 40 + 4 + 1 + [13 X2] + 1 - 1

=5 - 40 + 4 + 1 + 26 + 1 - 1 =—4 W为负数不行,加7的倍数14,得10。 10除以7,余数为3 , 2004年的9月1日是星期三。 例2 : 2010年的7月15日是星期几? C=20 y=10 M=7 d=15 W = [C/4] - 2C + y + [y/4] + [13 x(M+1) / 5] + d - 1 =[20/4] — 2 X20 + 10 + [10/4] + [13 X(7 + 1 ) /5] + 15 —1 =5 —40 + 10 + 2 + [13 X8/5] + 14 =—23 + 20 + 14 =11 11除以7余数为4, 2010年的7月15日是星期四。 链接:1世纪为100年2000年以后为21世纪,以此类 推 1个年代为10年90-99为90年代,以此类推! 女口:1900年是19世纪、1901年是20世纪、2000年 是20世纪、2001年是21世纪。

显示时间日期

课程设计说明书 课程设计题目 显示系统日期时间的程序开发 1.课程设计的目的和内容 内容:要求完成一个显示系统当前日期和时间的程序,即通过按下键盘上某个按键就可以显示系统的日期和时间或者终止程序。(比如:在出现的提示信息后输入小写字母“d”,显示系统当前日期;输入小写字母“t”,显示系统当前时间;输入小写字母“q”,结束程序。) 此程序涉及到对DOS和BIOS的常用功能的调用,要求学生掌握使用汇编语言对I/O中断的使用。 目的:(1)使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。 (2)培养学生综合运用所学知识独立完成汇编程序课题的能力。 (3)培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 (4)提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。 (5)培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 (6)对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 2.开发环境: (1)软件环境:DOS系统。 (2)硬件环境:普通PC机。 3.功能分析 (1)总体设计功能

工作原理:在DOS环境下完成,先利用BIOS功能调用中显示器驱动程序的00H类型调用,设置显示器的显示模式为80*25彩色。 在屏幕中央显示提示信息(提示用户输入“d”或“t”或“q”)。 然后对用户输入的字母进行判断,利用分支程序分别调用不同的子程序。两个子程序的功能分别是显示当前日期(用2AH的DOS功能调用来取日期),显示当前时间(用2CH的DOS功能调用来取时间)。 必须用到的DOS功能调用: 取当前系统日期:功能号为2AH,返回值送入CX,DX寄存器中。 取当前系统时间:功能号为2CH,返回值送入CX,DX寄存器中。 1.部分程序设计及功能 (1)文本显示 在显示彩色文本时,属性字节能够选择前景(显示的字节)和背景的颜色;每个字符可以选择16种颜色中的一种,背景有8种颜色可以选择;在程序代码中,

HTML显示时间日期

怎样计算任一天是星期几

怎样计算任一天是星期几 摘要: 最常见的公式: W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。 最好用的是蔡勒公式: W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1 C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值。 两个公式中的[...]均指只取计算结果的整数部分。算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。 --------------------------------------------------------------------------- 星期制度是一种有古老传统的制度。据说因为《圣经·创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。从实际的角度来讲,以七天为一个周期,长短也比较合适。所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。 在日常生活中,我们常常遇到要知道某一天是星期几的问题。有时候,我们还想知道历史上某一天是星期几。通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。假如是想在计算机编程中计算某一天是星期几,预先把一本万年历存进去就更不现实了。这时候是不是有办法通过什么公式,从年月日推出这一天是星期几呢? 答案是肯定的。其实我们也常常在这样做。我们先举一个简单的例子。比如,知道了2004年5月1日是星期六,那么2004年5月31日“世界无烟日”是星期几就不难推算出来。我们可以掰着指头从1日数到31日,同时数星期,最后可以数出5月31日是星期一。其实运用数学计算,可以不用掰指头。我们知道星期是七天一轮回的,所以5月1日是星期六,七天之后的5月8日也是星期六。在日期上,8-1=7,正是7的倍数。同样,5月15日、5月22日和5月29日也是星期六,它们的日期和5月1日的差值分别是14、21和28,也都是7的倍数。那么5月31日呢?31-1=30,虽然不是7的倍数,但是31除以7,余数为2,这就是说,5月31日的星期,是在5月1日的星期之后两天。星期六之后两天正是星期一。 这个简单的计算告诉我们计算星期的一个基本思路:首先,先要知道在想算的日子之前的一个确定的日子是星期几,拿这一天做为推算的标准,也就是相当于一个计算的“原点”。

单片机C语言电子钟显示年月日星期及时间(带注释)

#include #define uchar unsigned char #define uint unsigned int uchar code table[]=" 2011-12-30 SAT"; uchar code table1[]=" 23:59:55 "; uchar code week1[][3]={"MON","TUE","WEN","THU","FRI","SAT","SUN"}; /*uchar code week2[]="TUE"; uchar code week3[]="WEN"; uchar code week4[]="THU"; uchar code week5[]="FRI"; uchar code week6[]="SAT"; uchar code week7[]="SUN"; */ uchar count,shi,fen,miao,dnum,year,month,day,week,a=5; sbit rs=P2^0; //数据命令 sbit rw=P2^1; //读写 sbit en=P2^2; //使能 sbit d1=P3^1; //独立键盘 sbit d2=P3^2; sbit d3=P3^3; sbit d4=P3^4; void delay(uchar z) //延时 { uint x,y; for(x=110;x>0;x--) for(y=z;z>0;z--); } void write_com(uchar com) //写指令 { rs=0; rw=0; en=0; P0=com; delay(5); en=1; delay(5); en=0; } void write_date(uchar date) //写数据 {

计算星期几

计算星期几 要知道几十天以后的某一天是星期几,这是不难的,因为只要计算一下被7除的余数就可以了。但是,如果要知道几十年以后的某一天是星期几,那就比较困难了,因为在这段时间里有闰年,而且,每个月所含的天数也不一样。在这一节,我们要给出一个公式,可以方便地解决这个问题。 按现行的公历历法,每年有365天,若这一年是闰年,则有366天,二月有二十九天。闰年是这样确定的:公元年份数不被100整除但被4整除,或者年份数被400整除。 如果某一年是闰年,这一年的二月比正常年份的二月多一天,这样,从这一年的三月一日开始,星期数都受到这闰月的影响,同时,这一年的一月和二月里的星期数却不受影响。这样,就使得同一年里的计算有些不方便。所以,为了计算方便,我们把三月一日作为计算星期数的基点。 1600年以来,全世界大部分地区使用现行的公历历法。因此,我们考虑一个从1600年起使用的计算星期几的公式。 以下,我们使用记号: N = 100c + y 表示年份,其中0 ≤ y ≤ 99; m 表示月份,m = 1表示三月,m = 2表示四月, ,m = 12表示二月; d N (m )表示第N 年m 月1日的星期数。 假设d 1600(1)是已知的,我们首先计算d N (1),即第N 年3月1日的星期数。我们知道:如果没有闰月,一年有365天,因为 365 ≡ 1 (mod 7), 所以,每过一个正常年,星期数就增加1;每过一个闰年,星期数就增加2。 以r 表示从1600年到N 年的闰年数,我们得到 d N (1) ≡ d 1600(1) + N – 1600 + r (mod 7)。 (1) 由闰年的确定方法,我们有 ][][][ 400 1600 100100 1600 10041600 100-+ +-+ --+=y c y c y c r 4400 10016100 400 4 25][][ ][-+++---+=y c y c y c 。388400 100100 244 ][][ ][-++-+=y c y c y (2) 设c = 4q + s ,0 ≤ s ≤ 3,那么,由于0 ≤ y ≤ 99,100s + y < 400,所以 ][ ][ 400 1000100 y s y +=,= 0, 因此,由式(2)得到 388400 100400244 ][][ -++++=y s q c y r 388244 ][ -++=q c y

年月日计算问题

近期我们数学组在讨论老话题——计算经过的天数,怎么算?如3号到5号是算两天还是三天? 我觉得数学是不能脱离生活情境的,要看在什么情况下算天数。 如:7月1日放暑假,8月31日报名,暑假有多少天?这个就是算头不算尾;再如:学校举办艺术节,3月6日开幕,到4月10日闭幕,活动进行了多少天?这个就两头都算等等。后来我在网上搜索一下发现也有许多教者关于这个计算天数有疑问,有的提出关于有个不错的教案可以用用。 计算经过时间: 1、胜利小学从7月1日开始放暑假,到9月1日正式开学,胜利小学放暑假一共放了()天。 学生讨论,交流计算方法: 明确:7月1日也是算在放暑假之中的,7月份一共放了31天,8月份也是31天,9月1日已开学,不能算在放暑假中,所以暑假一共放了31+31=62天。如果从7月5日开始放暑假,到8月29日开学,一共放了()天。2、妈妈所在的班组从3月22日到4月10日,一共加工了200套服装,这个组平均每天加工多少套服装? 重点理解:3月22日到4月10日在计算时两头都要算,共20天。 计算天数的重点:会分段计算,其中不整月部分,结束时间-开始时间=经过时间。难点:考虑开始时间与结束时间是否需要计算在内,也就是在经过时间的基础上加一天或加两天或一天也不加。

分段法应用 例1.一项工程要9天完工,4月23日开工,几月几日完工? 想:很明显:9天后应该是5月了。所以分两段。 4月份:4月30日-4月23日+1=8(天) (注:30-23算出23日至30日又工作了几天,+1把开始时间4月23日当天算进去。) 5月份:9-8=1(天) 答:5月1日完工。 例2.小光从2012年2月25日开始收集废旧电池,他平均每天收集5个,到3月3日止,他一共收集多少个废旧电池? 想:2月到3月,分两段。 2月份:2月29日-2月25日+1=5(天) 3月份:3天 5+3=8(天) 8×5=40(个) 答:一共收集40个。 例3.2012年1月16日是星期一,请问:4月5日是星期几? 想:1月、2月、3月、4月分4段。 1月份:1月31日-1月16日=15(天) 2月份:29天 3月份:31天

《巧算“星期几”》例题分析加练习题(打印版)

《巧算“星期几”》 平年365天,其中2月28天, (1-12月分别为31天,28天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天) 闰年366天,其中2月29天. (1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天) 教学目标: 1、根据时间、日期的知识,解决一些时间问题。 2、掌握计算共经过的天数:从头到尾总天数除以7得出的余数是几,就从第一周期第一项开始数几,即可推知是星期几。算头不算尾、算尾不算头的总天数除以7得出的余数是几,就从第一周期第一项的下一项开始数几,推知是星期几。 教学过程: 一、实践畅销 1:平南小学从2011年12月1日到2011年12月20日举行第三届英语节活动,活动一共举行了多少天? T::请独立思考,比一比谁能快速得出结果? 小明:20天小红:19天 老师:谁的想法对?用什么方法验证? 分析:可以将日期列一列。分析:可以列算式20-1=19 19+1=20 老师:为什么要加1?(头尾都要算,所以要加1) 小结:计算从某年(月日)起到某年(月、日)共经过的天数,一般要连头带尾算,也就是经过的年数(天数)=结尾数-开始数+1。 反思:经过的年数(天数)=结尾数-开始数+1 2: 2012年第二学期从2月7日开学到2012年6月25日放假,一共有()天。 老师:这道题的天数较多,你准备用什么办法解决?提示:可以用分段推算的方法。注意考虑2012年是闰年,注意考虑到2月份有29天。可以将这些天分段如下:第一段:2月7日到2月29日,共23天。 第二段:3月共31天。 第三段:4月共30天 第四段:5月共31天 第五段:6月1日到6月25日共25天。 合计天数:23+31+30+31+25=140天 追问:如果开学那天是周二,放假那天是周几? 小明:140/7=20,没有余数,所以是周二 小红:应该是周一。 老师:有两种意见,哪一种对呢? 我们以一个周期来观察,可以发现第八天时,会与第一天的周几重复,也就是说当余数为1时,从第一个开始。当没有余数时,就是一个周期的最后一天。

汇编显示计算机时间和日期(上午或下午、星期几)

微机原理与接口技术编程作业 学院:xxxx学院班级:xxxxxxxxxx学号:xxxxxxxxxx姓名:xxx 【题目要求】 根据当前计算机的时间和日期,显示上午(AM)或下午(PM),并显示星期几。【设计思路】 通过使用软中断指令“INT 21H”进行系统功能调用,获取系统时间和日期。当AH=2AH时,可获取系统日期,有 CX=year(1980~2099) DH = month (1~12) DL = day (1~31) AL = day of the week (0~6, 0=Sunday, 1=Monday, etc.) 当AH=2CH时,可获取系统时间,有 CH=hours(0~23) CL = minutes (0~59) DH = seconds (0~59) DL = hundredths of seconds (0~99) 将对应的寄存器内容取出,二进制转换为ASCII码,再输出即可获知当前系统时间与日期。 其中,当小时(hours)值小于等于12时为上午(AM),大于12时为下午(PM),大于12时显示的小时数值与12进行作差操作。星期几可由AH=2AH时系统功能调用所得的AL数值对应得到,选取相符的字符串进行显示即可。 【源码】 .MODEL SMALL .DA TA WEEK DB 'Sunday$','Monday$','Tuesday$','Wednesday$','Thursday$','Friday$','Saturday$' .CODE START: MOV AX,@DA TA MOV DS,AX HOUR: MOV AH,2CH ; To get system time INT 21H MOV AL,CH ; Hour is in CH MOV CH,1 CMP AL,12 ; To determine AM or PM JLE NEXT SUB AL,12 MOV CH,2 NEXT:AAM MOV BX,AX CALL DISP

三年级年月日知识点汇总

年月日知识点整理 常用的时间单位有:(年、月、日)和(时、分、秒)。 一、年月日 1、年分为平年、闰年;平年有365天,有52个星期余1天; 闰年有366天,有52个星期余2天。 2、一年分为两部分:上半年(1-6月)、下半年(7-12月) 一年有4个季度,每3个月为一个季度 我们平时所说的一年四季,是按照农历的节气划分的,即春季、夏季、秋季、和冬季。 季节和季度是不一样的,春夏秋冬四个季节是根据温度变化进行区分的,而季度是根据月份区分的。 3、一年有12个月,(7大4小1特殊)。 每个月分3旬:上旬(1日--10日)中旬(11-20日)下旬(21-月末) “7大”--有31天的月份是大月,每年有7个大月,是1月、3月、5月、7月、8月、10月、12月。 “4小”--有30天的月份是小月,每年有4个小月,是4月、6月、9月、11月。 “1特殊”--2月既不是大月也不是小月,平年的2月有28天、闰年的2月有29天。 4、7月和8月、12月和1月都是连续的大月,共计(62天)。 在同一年中,只有7月和8月是连续的大月。 跨年的连续大月是12月和1月 如果连续两个月的天数是61天,那么其中就包含了一个大月(31天)和一个小月(30天)。

5、通常每4年里有3个平年,1个闰年。 “四年一闰,百年不闰,四百年又闰”意思是年份除以4,能被整除的年份为闰年,但是遇到末尾两位是00的年份,能够被400整除的年份才为闰年。 判断平年、闰年的方法: (1)末尾不是两个0的年份,用末尾两位数除以4,没有余数就是闰年,有余数就不是。 如:2016年,16÷4=4,没有余数,则2016年是闰年。 (2)末尾是两个0的年份,用前面两位数(三位数的年份就用前一位数)除以4,没有余数就是闰年,有余数就是平年。 如:2000年,20÷4=5,没有余数,则2000年是闰年。 900年,9÷4=2……1,有余数,则900年不是闰年。 (3)末尾个位是单数的为平年 如:2017、1999、2011 例题:小华今年12岁,只过了3次生日,问小华的生日是几号 解答:12÷3=4(年),小华4年才过一次生日,闰年也是四年一轮,2月29日四年才有一次,所以小华的生日是2月29日。 6、周年的意义:如我国1949年10月1日成立,到1999年10月1日过了50年(1999-1949=50年),这就是中华人民共和国成立50周年。 周年计算公式:终止年份-起始年份=经过的年份 (1)、计算周年:中国共产党是1921年7月1日诞生的,到2015年7月1日是建党94周年,列式 2015-1921=94年。 (2)、例题2:中华人民共和国成立于1949年10月1日,到今年建国多少周年 熟记中华人民共和国建国的时间是1949年10月1日; 列式:2018-1949=69(年) (3)、给出一个人出生的年份,会计算这个人多少周岁;给出一个人的年龄会计算他是哪一年出生的。 如:小华2003年6月出生,到今年6月几岁答:到今年6月15岁了。 列式:2018(今年的年份)-2003(出生年份)=15 如:小华今年12岁,他是什么时候出生的答:他是2006年出生的。 列式:2018(今年年份)-12(岁数)=2006 常用的节日、纪念日一定要记住:

相关主题