Program Code
//C program For Analog Clock
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>
main()
{
int gd=DETECT,gm;
int xm,ym,i,j,k,hrs,min,sec;
clrscr();
// Entering the correct and current time with verification
printf("Enter the current time\n Hours: ");
scanf("%d",&hrs);
printf("Minutes: ");
scanf("%d",&min);
printf("Seconds: ");
scanf("%d",&sec);
while (hrs<=0||hrs>12)
{
printf("Enter the correct hour:");
scanf("%d",&hrs);
}
while (min<0||min>=60)
{
printf("Enter the correct minute:");
scanf("%d",&min);
}
while (sec<0||sec>=60)
{
printf("Enter the correct second:");
scanf("%d",&sec);
}
// Initilization of graphics mode
initgraph(&gd,&gm,"..\\bgi");
xm=getmaxx();
ym=getmaxy();
// Generating the gasic outline of the clock
for(i=0;i<3;i++) // Drawing outer circle in dark
circle(xm/2,ym/2,200+i);
setcolor(4);
for (i=-1;i<2;i++) //Drawing the 2 vertical lines in thick
{
line(xm/2+i,ym/2-200,xm/2+i,ym/2-170);
line(xm/2+i,ym/2+200,xm/2+i,ym/2+170);
}
for (i=-1;i<2;i++) //Drawing 2 horizontal lines in thick
{
line(xm/2-200,ym/2+i,xm/2-170,ym/2+i);
line(xm/2+200,ym/2+i,xm/2+170,ym/2+i);
}
setcolor(15);
for (i=1;i<12;i++) //Drawing the remaining lines in light
if ((i!=3)&&(i!=6)&&(i!=9))
line(xm/2+200*cos(3.14*i/6),ym/2+200*sin(3.14*i/6),xm/2+170*cos
(3.14*i/6),ym/2+170*sin(3.14*i/6));
// outtextxy(xm/2+50,ym/2+225,"CLOCK MADE BY D VAMSI KRISHNA");
// Setting the error in hours hand
if (hrs==12)
hrs=0;
if (hrs==11)
hrs=-1;
if (hrs==10)
hrs=-2;
if (hrs==9)
hrs=-3;
k=sec;
j=min*60+i;
i=hrs*60*60+j;
// Drawing the lines of minutes hours n seconds and updating it regularly
while(!kbhit())
{
setcolor(9);
outtextxy(xm/2-60,ym/2+75,"D VAMSI KRISHNA");
setcolor(14);
line(xm/2,ym/2,xm/2+100*cos(0.000145*i-1.570),ym/2+100*sin(0.000145*i-1.570));
circle(xm/2+100*cos(0.000145*i-1.570),ym/2+100*sin(0.000145*i-1.570),3);
setcolor(3);
line(xm/2,ym/2,xm/2+125*cos(0.001745*j-1.570),ym/2+125*sin(0.001745*j-1.570));
circle(xm/2+125*cos(0.001745*j-1.570),ym/2+125*sin(0.001745*j-1.570),3);
setcolor(5);
line(xm/2,ym/2,xm/2+150*cos(0.1047*k-1.570),ym/2+150*sin(0.1047*k-1.570));
//circle(xm/2+150*cos(0.1047*k-1.570),ym/2+150*sin(0.1047*k-1.570),3);
delay(1000);
setcolor(0);
line(xm/2,ym/2,xm/2+100*cos(0.000145*i-1.570),ym/2+100*sin(0.000145*i-1.570));
circle(xm/2+100*cos(0.000145*i-1.570),ym/2+100*sin(0.000145*i-1.570),3);
line(xm/2,ym/2,xm/2+125*cos(0.001745*j-1.570),ym/2+125*sin(0.001745*j-1.570));
circle(xm/2+125*cos(0.001745*j-1.570),ym/2+125*sin(0.001745*j-1.570),3);
line(xm/2,ym/2,xm/2+150*cos(0.1047*k-1.570),ym/2+150*sin(0.1047*k-1.570));
//circle(xm/2+150*cos(0.1047*k-1.570),ym/2+150*sin(0.1047*k-1.570),3);
if (i==32400)
i=-10800;
if (k==60)
k=0;
if (j==3600)
j=3600;
i++;
j++;
k++;
}
getch();
closegraph();
return 0;
}
Output



Dont SPAM