想做时钟加日历,该如何解决
想做时钟加日历
#include "stdio.h "
#include "graphics.h "
#include "math.h "
#include "dos.h "
#define pi 3.1415926
#define mid_x 160
#define mid_y 240
#define X(a,b,c,d,e) x=a*sin(pi-((b*c+360/e*d/60)*pi/180))+160
#define Y(a,b,c,d,e) y=a*cos(pi-((b*c+360/e*d/60)*pi/180))+240
#define L(a,b,c,d,e) X(a,b,c,d,e);Y(a,b,c,d,e);line(160,240,x,y)
void intdraw()
{
int m,l,x1,x2,y1,y2;
setcolor(2);
line(20,80,620,80);
line(20,80,20,400);
line(20,400,620,400);
line(620,400,620,80);
setcolor(3);
circle(mid_x,mid_y,130);
circle(mid_x,mid_y,134);
circle(mid_x,mid_y,1);
for(m=0;m <60;m++)
{
if(m%5==0) l=10;
else l=4;
x1=130*cos(m*6*pi/180)+mid_x;
y1=130*sin(m*6*pi/180)+mid_y;
x2=(130-l)*cos(m*6*pi/180)+mid_x;
y2=(130-l)*sin(m*6*pi/180)+mid_y;
line(x1,y1,x2,y2);
}
}
main()
{
int graphdriver=DETECT,graphmode;
struct time curtime;
int x,y;
double h,m,s;
initgraph(&graphdriver,&graphmode, "c:\\tc ");
setbkcolor(0);
while(!kbhit(0))
{
intdraw();
gettime(&curtime);
h=curtime.ti_hour;
m=curtime.ti_min;
s=curtime.ti_sec;
setcolor(10);
L(70,h,30,m,12.0);
setcolor(12);
L(90,m,6,s,60.0);
setcolor(8);
L(120,s,6,0,1.0);
sleep(1);
clrscr();
}
getch();
closegraph();
}时钟
void clear(int x1,int y1,int x2,int y2,int c);
void show_mouse()
{
union REGS ireg;
ireg.x.ax=1;
int86(0x33,&ireg,&ireg);
}
void hid_mouse()
{
union REGS ireg;
ireg.x.ax=2;
int86(0x33,&ireg,&ireg);
}
void main()
{
int y,m,d,k,r,i,p,h,l,tj=1;
int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
char *b[]={ "Sun ", "Mon ", "Tue ", "Wed ", "Thr ", "Fri ", "Sat "};
char buff[960];
struct date sysdate;
getdate(&sysdate);
y=sysdate.da_year;
m=sysdate.da_mon;
l=wherex();
h=wherey();
gettext(21,1,59,11,buff);
hid_mouse();
while(tj)
{
clear(21,1,59,11,BLUE);
gotoxy(34,2);
textcolor(WHITE);
#include "stdio.h "
#include "graphics.h "
#include "math.h "
#include "dos.h "
#define pi 3.1415926
#define mid_x 160
#define mid_y 240
#define X(a,b,c,d,e) x=a*sin(pi-((b*c+360/e*d/60)*pi/180))+160
#define Y(a,b,c,d,e) y=a*cos(pi-((b*c+360/e*d/60)*pi/180))+240
#define L(a,b,c,d,e) X(a,b,c,d,e);Y(a,b,c,d,e);line(160,240,x,y)
void intdraw()
{
int m,l,x1,x2,y1,y2;
setcolor(2);
line(20,80,620,80);
line(20,80,20,400);
line(20,400,620,400);
line(620,400,620,80);
setcolor(3);
circle(mid_x,mid_y,130);
circle(mid_x,mid_y,134);
circle(mid_x,mid_y,1);
for(m=0;m <60;m++)
{
if(m%5==0) l=10;
else l=4;
x1=130*cos(m*6*pi/180)+mid_x;
y1=130*sin(m*6*pi/180)+mid_y;
x2=(130-l)*cos(m*6*pi/180)+mid_x;
y2=(130-l)*sin(m*6*pi/180)+mid_y;
line(x1,y1,x2,y2);
}
}
main()
{
int graphdriver=DETECT,graphmode;
struct time curtime;
int x,y;
double h,m,s;
initgraph(&graphdriver,&graphmode, "c:\\tc ");
setbkcolor(0);
while(!kbhit(0))
{
intdraw();
gettime(&curtime);
h=curtime.ti_hour;
m=curtime.ti_min;
s=curtime.ti_sec;
setcolor(10);
L(70,h,30,m,12.0);
setcolor(12);
L(90,m,6,s,60.0);
setcolor(8);
L(120,s,6,0,1.0);
sleep(1);
clrscr();
}
getch();
closegraph();
}时钟
void clear(int x1,int y1,int x2,int y2,int c);
void show_mouse()
{
union REGS ireg;
ireg.x.ax=1;
int86(0x33,&ireg,&ireg);
}
void hid_mouse()
{
union REGS ireg;
ireg.x.ax=2;
int86(0x33,&ireg,&ireg);
}
void main()
{
int y,m,d,k,r,i,p,h,l,tj=1;
int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
char *b[]={ "Sun ", "Mon ", "Tue ", "Wed ", "Thr ", "Fri ", "Sat "};
char buff[960];
struct date sysdate;
getdate(&sysdate);
y=sysdate.da_year;
m=sysdate.da_mon;
l=wherex();
h=wherey();
gettext(21,1,59,11,buff);
hid_mouse();
while(tj)
{
clear(21,1,59,11,BLUE);
gotoxy(34,2);
textcolor(WHITE);