#include<graphics.h>
#include<stdio.h>
#include<math.h>
#include<dos.h>
#define PI 3.1415926
#define UP 0x4800
#define DOWN 0x5000
#define ESC 0x11b
#define TAB 0xf09
clock();
date(int,int);
int digitsec(double s)/*digital clock second*/
{int i;
for(i=0;i<=59;i++) if(s==i) return i;
}
int digithour(double h)/*digital clock hour*/
{int i;
for(i=0;i<=23;i++) if(h==i) return i;
}
int digitmin(double m)/*digital clock minute*/
{int i;
for(i=0;i<=59;i++) if(m==i) return i;
}
digitclock(int x,int y,int clock)/*整个digital clock*/
{char buffer1[10];
setfillstyle(0,2);
bar(x,y,x+15,328);
if(clock==60) clock=0;
sprintf(buffer1,"%d",clock);
outtextxy(x,y,buffer1);
}
cursor(int count) /*画一个光标函数*/
{switch(count)
{case 1:line(156,108,156,118);break;
case 2:line(280,108,280,118);break;
case 3:line(424,315,424,325);break;
case 4:line(465,315,465,325);break;
case 5:line(505,315,505,325);break;
}
}
clear(int count) /*清除光标函数*/
{switch(count)
{case 2:line(156,108,156,118);break;
case 3:line(280,108,280,118);break;
case 4:line(424,315,424,325);break;
case 5:line(465,315,465,325);break;
case 1:line(505,315,505,325);break;
}
}
int key(int,int);
int dateupchange(int);
int datedownchange(int);
int timeupchange(int);
int timedownchange(int);
double h,m,s;
double x,x1,x2,y,y1,y2;
char buffer[80];
strUCt time t[1];
struct date da[1];
main()
{int driver, mode=0,i,j;
int year,mon;
char *month[]={"SUN","MON","TUE","WEN","THU","FRI","SAT"};
driver=DETECT;
initgraph(&driver, &mode, "");
setlinestyle(0,0,3);
setbkcolor(0);
setcolor(7);
line(82,430,558,430);
line(70,62,70,418);
line(82,50,558,50);
line(570,62,570,418);
line(70,62,570,62);
line(76,56,297,56);
line(340,56,564,56); /*画主体框架*/
setlinestyle(0,0,3);
arc(82,62,90,180,12);
setlinestyle(0,0,3);
arc(558,62,0,90,12);
setlinestyle(0,0,3);
arc(82,418,180,279,12);
setlinestyle(0,0,3);
arc(558,418,270,360,12); /*画边角*/
setcolor(15);
outtextxy(300,53,"CLOCK"); /*总标题*/
setcolor(7);
rectangle(80,72,332,360); /*月历的框架*/
rectangle(342,72,560,360); /*时钟的框架*/
for(j=78;j<=84;j+=6)
line(80,j,332,j);
setwritemode(1);
line(190,78,225,78);
setwritemode(0);
setcolor(15);
outtextxy(193,75,"DATE");
setcolor(7);
rectangle(90,106,160,120);
outtextxy(163,110,"(M)"); /*打印月份标题*/
rectangle(190,106,290,120);
outtextxy(293,110,"(Y)"); /*打印年标题*/
for(i=0,j=90;i<7;i++,j+=35)
outtextxy(j,145,month[i]);/*打印周一至周日*/
rectangle(88,140,323,330);
line(88,158,323,158);/*月份的框架*/
for(j=78;j<=84;j+=6)
line(342,j,560,j);
setwritemode(1);
line(431,78,465,78);
setwritemode(0);
setcolor(15);
outtextxy(433,75,"TIME");/*时钟的标题*/
setcolor(7);
line(392,310,510,310);
line(392,330,510,330);
arc(392,320,90,270,10);
arc(510,320,270,90,10);
for(i=431;i<=470;i+=39)
for(j=317;j<=324;j+=7){
setlinestyle(0,0,3);
circle(i,j,1);
} /*DIG99vAL CLOCK*/
setcolor(15);
line(156,108,156,118); /*在运行起始先画一个光标*/
for(i=0,m=0,h=0;i<=11;i++,h++){ /*hour points*/
x=100*sin((h*60+m)/360*PI)+451;
y=200-100*cos((h*60+m)/360*PI);
setlinestyle(0,0,3);
circle(x,y,1);
}
for(i=0,m=0;i<=59;m++,i++){