dos窗口模拟时钟

本文介绍了作者用C++编写的一个简单时钟程序,通过获取用户输入的时间并进行实时更新。程序使用了时间库和Windows API,可以持续显示当前时间,并在每一秒更新。作者强调了算法在编程中的重要性,特别是对于解决安卓开发中遇到的问题。代码中包含了对日期和星期的处理,考虑了闰年的条件。欢迎大家交流讨论。
摘要由CSDN通过智能技术生成
今天晚上兴趣一下子上来了,现在一直在搞安卓,今天晚上突然想搞算法,写了个C++小程序,本人不才有需要的可以看看。。。主要是由于最近搞安卓开发遇到了一些算法问题,突然发现算法是多么的重要。主要是大一时候没怎么学C++,编程太少没一点算法基础。感觉现在可以重新开始学习算法了。废话少说直接上代码。。。。。
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
#include <time.h>
#define N 13
int main(){
	int year,month,day,hour,min,sec,week,i;
	int b[N]={0,31,28,31,30,30,31,31,30,31,30,30,31};
	printf("please enter the time\n");
	cout<<"格式:年 月 日 小时 分钟 秒 星期几"<<endl;
	cout<<"如:2014 05 12 14 55 56 3"<<endl;
	scanf("%d %d %d %d %d %d %d",&year,&month,&day,&hour,&min,&sec,&week);
	while(1){
		if(sec>=59){
			min++;
			sec = sec-59;
		}
		if(min>59){
			hour++;
			min-=60;
		}
		if(hour>23){
			day++;
			week++;
			hour-=24;
		}
		if(
CODE SEGMENT ASSUME CS:CODE START: JMP NEXT BUFF DW 0 BUFF1 DW 2 DUP(0) MAIN: PUSHF CALL DWORD PTR CS:BUFF1 PUSH AX PUSH BX PUSH CX PUSH DX XOR BH,BH MOV AH,3 INT 10H ;读光标位置 MOV CS:BUFF,DX MOV AH,2 XOR BH,BH MOV DX,47H INT 10H ;置光标位置 MOV AH,2      INT 1AH ;读系统时间 PUSH DX PUSH CX POP BX PUSH BX CALL SHOW1 CALL SHOW2 POP BX XCHG BH,BL CALL SHOW1 CALL SHOW2 POP BX CALL SHOW1 MOV DX,CS:BUFF MOV AH,2 XOR BH,BH INT 10H ;置光标位置 POP DX POP CX POP BX POP AX IRET ;中断返回 ;以下为将系统时间转化为对应的ASCLL码显示的程序 SHOW1 PROC NEAR PUSH BX MOV CL,4 MOV AL,BH SHR AL,CL ADD AL,30H ;转换为ASCLL码 CALL SHOW CALL XJB POP BX MOV AL,BH AND AL,0FH ADD AL,30H CALL SHOW CALL XJB RET SHOW1 ENDP ;以下为显示”:“符号的程序 SHOW2 PROC NEAR MOV AL,‘:‘ CALL SHOW CALL XJB RET SHOW2 ENDP ;以下是对光标的处理的程序 XJB PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,3 MOV BH,0 INT 10H ; 读光标位置 INC DL MOV AH,2 INT 10H ; 置光标位置 POP DX POP CX POP BX POP AX RET XJB ENDP ;以下是将AL里的内容显示的程序 SHOW PROC NEAR PUSH AX PUSH BX PUSH CX MOV AH,09H MOV BX,2FH MOV CX,1 INT 10H ;在光标位置显示字及其属性 POP CX POP BX POP AX RET SHOW ENDP;以下为取中断,保存中断,设置新的这段类型的程序 NEXT: PUSH CS POP DS MOV AX,351CH ;取中断向量 INT 21H MOV BUFF1,BX ;保存偏移地址 MOV BX,ES ;保存段地址 MOV BUFF1+2,BX MOV DX,OFFSET MAIN MOV AL,1CH ; 中断类型放日AL MOV AH,25H ; 设置中断向量的功能调用 INT 21H ;改变中断向量 LEA DX,NEXT SUB DX,OFFSET START MOV CL,4 SHR DX,CL ADD DX,11H MOV AX,3100H       INT 21H CODE ENDS END START
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值