A calendar in which you can use a mouse, simply enter the year and month and you will c the result by yourself, a calendar wid a very simple logic #include #include #include #include #include #include union REGS i,o; initmouse(); showmouse(); hidemouse(); void restrictmouse(int x1,int y1,int x2,int y2); void getmousestatus( int *button,int *x,int *y); void findday(); void menu(); void cal(); void main() { clrscr(); int gd=EGA,gm=EGAHI; initgraph(&gd,&gm,"c:\tc\bgi "); menu(); getch(); closegraph(); } void findday() { int k=1,m=11,mon,D,C,f,i,y,total=0,t,I,d,x1=115,y1=160,q,r,v; static int s=0; char st2[3],st3[9],st4[5]; int days[]={31,28,31,30,31,30,31,31,30,31,30,31}; char *month[]={"JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST ","SEPTEMBER","OCTOBER","NOVEMBER","DECEMEBER"}; restorecrtmode(); cout<<"Enter year : "; cin>>y; cout<<"Enter month : "; cin>>mon; if(mon>12) { cout<<" Invalid entry !....."; delay(1000); setgraphmode(getgraphmode()); menu(); } y-=1; C=y/100; D=y%100; f=(k+((13*m-1)/5)+D+(D/4)+(C/4)-(2*C)); i=f%7; if(i<0) i+=7; y++; if(y%4==0) days[1]=29; for(t=0;t=7) d=d%7; setgraphmode(getgraphmode()); cal(); v=mon-1; strcpy(st3,month[v]); itoa(y,st4,10); settextstyle(2,0,8); outtextxy(100,90,st3); outtextxy(250,90,st4); q=days[mon-1]; settextstyle(1,0,2); setcolor(15); for(r=1;r<=d;r++) { x1+=62; s++; } for(r=1;r<=q;r++) { itoa(r,st2,10); if(s>=6) { outtextxy(x1,y1,st2); y1+=30; x1=112; s=0; continue; } outtextxy(x1,y1,st2); x1+=60; s++; } s=0; getch(); menu(); } void menu() { cleardevice(); int b,xx,yy; initmouse(); restrictmouse(0,0,getmaxx(),getmaxy()); setbkcolor(0); settextstyle(10,0,2); outtextxy(100,70,"***********MENU*********** "); outtextxy(100,150,"=> MONTH'S CALENDAR "); outtextxy(100,200,"=> EXIT "); settextstyle(8,0,1); outtextxy(350,300,"Hello World"); showmouse(); while(!kbhit()) { getmousestatus(&b,&xx,&yy); if(xx>=100&&yy>=150&&xx<=500&&yy<=200) { getmousestatus(&b,&xx,&yy); if(b&1==1) { hidemouse(); cleardevice(); findday(); } } if(xx>=100&&yy>=200&&xx<=300&&yy<=260) { getmousestatus(&b,&xx,&yy); if(b&1==1) { hidemouse(); cleardevice(); setbkcolor(0); setcolor(15); settextstyle(10,0,5); outtextxy(100,200,"EXITING"); int o=0; for(int n=0;n<10;n++) { outtextxy(380+o,200,"."); o+=20; delay(200); } exit(0); } } } } void cal() { cleardevice(); int l=100,t=125,r=155,b=185,g,x=110,y=127; char *day[]={"SUN","MON","TUE","WED","THU","FRI","SAT"}; char st1[4]; setbkcolor(0); settextstyle(10,0,7); setcolor(15); outtextxy(100,-40,"C"); settextstyle(10,0,6); outtextxy(160,-20,"ALENDAR"); setfillstyle(1,BLUE); bar(85,115,530,345); setfillstyle(1,0); bar3d(l,t,r,b,0,0); bar3d(l,t+30,r,b+30,0,0); bar3d(l,t+60,r,b+60,0,0); bar3d(l,t+90,r,b+90,0,0); bar3d(l,t+120,r,b+120,0,0); bar3d(l,t+150,r,b+150,0,0); bar3d(l,t+180,r,b+150,0,0); bar3d(l+60,t,r+60,b,0,0); bar3d(l+60,t+30,r+60,b+30,0,0); bar3d(l+60,t+60,r+60,b+60,0,0); bar3d(l+60,t+90,r+60,b+90,0,0); bar3d(l+60,t+120,r+60,b+120,0,0); bar3d(l+60,t+150,r+60,b+150,0,0); bar3d(l+60,t+180,r+60,b+150,0,0); bar3d(l+120,t,r+120,b,0,0); bar3d(l+120,t+30,r+120,b+30,0,0); bar3d(l+120,t+60,r+120,b+60,0,0); bar3d(l+120,t+90,r+120,b+90,0,0); bar3d(l+120,t+120,r+120,b+120,0,0); bar3d(l+120,t+150,r+120,b+150,0,0); bar3d(l+120,t+180,r+120,b+150,0,0); bar3d(l+180,t,r+180,b,0,0); bar3d(l+180,t+30,r+180,b+30,0,0); bar3d(l+180,t+60,r+180,b+60,0,0); bar3d(l+180,t+90,r+180,b+90,0,0); bar3d(l+180,t+120,r+180,b+120,0,0); bar3d(l+180,t+150,r+180,b+150,0,0); bar3d(l+180,t+180,r+180,b+150,0,0); bar3d(l+240,t,r+240,b,0,0); bar3d(l+240,t+30,r+240,b+30,0,0); bar3d(l+240,t+60,r+240,b+60,0,0); bar3d(l+240,t+90,r+240,b+90,0,0); bar3d(l+240,t+120,r+240,b+120,0,0); bar3d(l+240,t+150,r+240,b+150,0,0); bar3d(l+240,t+180,r+240,b+150,0,0); bar3d(l+300,t,r+300,b,0,0); bar3d(l+300,t+30,r+300,b+30,0,0); bar3d(l+300,t+60,r+300,b+60,0,0); bar3d(l+300,t+90,r+300,b+90,0,0); bar3d(l+300,t+120,r+300,b+120,0,0); bar3d(l+300,t+150,r+300,b+150,0,0); bar3d(l+300,t+180,r+300,b+150,0,0); bar3d(l+360,t,r+360,b,0,0); bar3d(l+360,t+30,r+360,b+30,0,0); bar3d(l+360,t+60,r+360,b+60,0,0); bar3d(l+360,t+90,r+360,b+90,0,0); bar3d(l+360,t+120,r+360,b+120,0,0); bar3d(l+360,t+150,r+360,b+150,0,0); bar3d(l+360,t+180,r+360,b+150,0,0); settextstyle(1,0,2); setcolor(15); for(g=0;g<7;g++) { strcpy(st1,day[g]); outtextxy(x,y,st1); x+=60; } } initmouse() { i.x.ax=0; int86(0x33,&i,&o); return(o.x.ax); } showmouse() { i.x.ax=1; int86(0x33,&i,&o); return(o.x.ax); } hidemouse() { i.x.ax=2; int86(0x33,&i,&o); return(o.x.ax); } void restrictmouse(int x1,int y1,int x2,int y2) { i.x.ax=7; i.x.cx=x1; i.x.dx=x2; int86(0x33,&i,&o); i.x.ax=8; i.x.cx=y1; i.x.dx=y2; int86(0x33,&i,&o); } void getmousestatus(int *button,int *x,int *y) { i.x.ax=3; int86(0x33,&i,&o); *button=o.x.bx; *x=o.x.cx; *y=o.x.dx; }
No comments: