C++ Program to create an Analog Clock

C++ Program to create an Analog Clock
C++ Program to create an Analog Clock

#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<process.h>
#include<iostream.h>

int calculatehrs(int h)
{
int x;
switch(h)
{
case 0: x=90;
break;
case 1:
case 13: x=60;
break;
case 2:
case 14: x=30;
break;
case 3:
case 15: x=0;
break;
case 4:
case 16: x=330;
break;
case 5:
case 17: x=300;
break;
case 6:
case 18: x=270;
break;
case 7:
case 19: x=240;
break;
case 8:
case 20: x=210;
break;
case 9:
case 21: x=180;
break;
case 10:
case 22: x=150;
break;
case 11:
case 23: x=120;
break;
case 12:
case 24: x=90;
break;
}
return(x);
}

int calculatemin(int m)
{
int x;
if(m%5==0)
{
switch(m)
{
case 0: x=90;
break;
case 5: x=60;
break;
case 10: x=30;
break;
case 15: x=360;
break;
case 20: x=330;
break;
case 25: x=300;
break;
case 30: x=270;
break;
case 35: x=240;
break;
case 40: x=210;
break;
case 45: x=180;
break;
case 50: x=150;
break;
case 55: x=120;
break;
case 60: x=90;
break;
}
}
else
{
if(m>0&&m<15)
{
switch(m)
{
case 1: x=84;
break;
case 2: x=78;
break;
case 3: x=72;
break;
case 4: x=66;
break;
case 6: x=54;
break;
case 7: x=48;
break;
case 8: x=42;
break;
case 9: x=36;
break;
case 11: x=24;
break;
case 12: x=18;
break;
case 13: x=12;
break;
case 14: x=6;
break;
}
}

if(m>15&&m<30)
{
switch(m)
{
case 16: x=354;
break;
case 17: x=348;
break;
case 18: x=342;
break;
case 19: x=336;
break;
case 21: x=324;
break;
case 22: x=318;
break;
case 23: x=312;
break;
case 24: x=306;
break;
case 26: x=294;
break;
case 27: x=288;
break;
case 28: x=282;
break;
case 29: x=276;
break;
}
}

if(m>30&&m<45)
{
switch(m)
{
case 31: x=264;
break;
case 32: x=258;
break;
case 33: x=252;
break;
case 34: x=246;
break;
case 36: x=234;
break;
case 37: x=228;
break;
case 38: x=222;
break;
case 39: x=216;
break;
case 41: x=204;
break;
case 42: x=198;
break;
case 43: x=192;
break;
case 44: x=186;
break;
}
}

if(m>45&&m<60)
{
switch(m)
{
case 46: x=174;
break;
case 47: x=168;
break;
case 48: x=162;
break;
case 49: x=156;
break;
case 51: x=144;
break;
case 52: x=138;
break;
case 53: x=132;
break;
case 54: x=126;
break;
case 56: x=114;
break;
case 57: x=108;
break;
case 58: x=102;
break;
case 59: x=96;
break;

}
}

}
return(x);
}

int changehrs(int m,int a)
{
if(m>15&&m<=30)
a-=12;
if(m>30&&m<=45)
a-=18;
if(m>45&&m<60)
a-=24;
return (a);
}

void main()
{
int gdriver=DETECT,gmode,h,m,s,a,b,c;
initgraph(&gdriver,&gmode,”c:\tc\bgi”);

struct  time t;
gettime(&t);
h=t.ti_hour;
m=t.ti_min;
s=t.ti_sec;

a=calculatehrs(h);
b=calculatemin(m);
c=calculatemin(s);
a=changehrs(m,a);

for(int i=a;i>0;i-=6)
for(int j=b;j>0;j-=6)
for(int k=c;k>0;k-=6)
{
setbkcolor(7);
settextstyle(1,HORIZ_DIR,5);
setcolor(BLUE);
outtextxy(190,20,”Analog Clock”);
settextstyle(8,HORIZ_DIR,2);

setcolor(BLUE);
circle(300,200,102);
setcolor(YELLOW);
circle(300,200,100);
outtextxy(385,185,”3″);
outtextxy(288,98,”12″);
outtextxy(207,185,”9″);
outtextxy(295,270,”6″);

circle(345,123,2);
circle(378,155,2);
circle(378,245,2);
circle(345,280,2);
circle(253,278,2);
circle(223,245,2);
circle(223,155,2);
circle(253,123,2);

setcolor(RED);
pieslice(300,200,i-1,i,75);
setcolor(WHITE);
pieslice(300,200,j-1,j,85);

setcolor(BLUE);
pieslice(300,200,k-1,k,95);

setcolor(RED);
settextstyle(3,HORIZ_DIR,1);
outtextxy(360,400,”Press any key to exit…!!”);
sleep(1);
clearviewport();

if(i==6)
a=360;
if(j==6)
b=360;
if(k==6)
c=360;

if(kbhit())
{
setcolor(YELLOW);
setbkcolor(BLUE);
settextstyle(1,HORIZ_DIR,8);
outtextxy(130,150,”Thank You”);
sleep(3);
exit(0);
}

}
}

23 thoughts on “C++ Program to create an Analog Clock

  1. nimra qasim

    i want shopping mall management system project
    Login()
    Add/Remove/UpdateUser()
    UserPanel()
    AdminPanel
    Add/Remove/UpdateProduct()
    Add/Remove/UpdateOrder()
    CheckTotalSale()
    ShowAllProducts()
    ShowSpecificDaySale
    ShowProfit/Lose()
    …2 more()

    Reply
  2. amo baghdad

    When I running this program I noticed that I have 1 error so this is a message error:
    "fatal ..INCLUDEIOSTREAM.H 19:Error directive: Must use for the type iostream."

    I hope for you to tell how can I fix this problem

    thanks

    Reply
  3. Amandeep Sandhu

    Microsoft visual c++ gives me this error if i try running it
    '#include ': skipped when looking for precompiled header use
    '#include ': skipped when looking for precompiled header us
    '#include ': skipped when looking for precompiled header use
    '#include ': skipped when looking for precompiled header use

    Reply
  4. andrey

    Hei Neeraj Mishra , thank you very much for your effort. I am really enjoying your blog. If it possible can elso write some explanation to your programs for a beginners.

    Reply
  5. Roman

    hey umm im a budding programmer and i would like to know what header file you used cause im using dev-cpp?

    Reply
  6. Shubham Debnath

    give me this error when i running my program
    BGI graphics not supported under window
    how can i fix this problem

    Reply
    1. Admin Post author

      Actually BGI graphics works in old compiler like turbo C++. It will not work in modern compilers. Which compiler you are using?

      Reply
        1. Admin Post author

          Then the program must work. Just change the path “c:\tc\bgi” with the path of bgi folder of your compiler.

          Reply
  7. swapnil

    When ii am executing this it’s showing “Graphics Not Initialised ”
    What can i do to correct it?????

    Reply
  8. Shubham bansal

    when I running the program only one error is obtain after void main(). that is” declaration syntax error”
    what can I do?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *