/*-------------------------------------------------------------------*/ /* File: c01x.cpp Created: 12/12/99 */ /* from c01, m03 & cdr .cpp files at 7:55am */ /* orig from ...Extended calendar program... */ /* zs.cpp ............................... */ /* moded: 3/14/00 6:20am-> 6:50am 12/12/00 8:00am-> 8:45am */ /* 12/12/00 10:40am->11:15am 12/12/00 1:37pm-> 2:00pm */ /* 12/13/00 7:21am-> 9:25am 12/13/00 10:50am->11:20am */ /* 12/13/00 1:30pm-> 1:45pm 12/14/00 7:48am-> 8:55am */ /* 12/14/00 10:17am->11:00am 12/15/00 7:30am-> 8:45am */ /* 12/16/00 6:25am-> 8:45am 12/16/00 10:20am->10:55am */ /* 12/17/00 6:20am-> 8:08am 12/18/00 7:30am-> 9:10am */ /* 12/19/00 7:00am-> 8:05am 12/20/00 6:30am-> 8:30am */ /* 12/21/00 7:50am-> 8:50am 12/21/00 10:15am->11:10am */ /* 12/21/00 1:45pm-> 2:15pm 12/22/00 6:40am-> 8:10am */ /* 12/22/00 10:05am->11:00am 12/22/00 1:30pm-> 2:10pm */ /* 12/23/00 6:35am-> 7:55am 12/23/00 10:30am->11:00am */ /* 12/24/00 7:30am-> 8:45am 12/26/00 6:25am-> 8:35am */ /* 12/26/00 1:45pm-> 2:20pm 12/27/00 6:30am-> 9:22am */ /* 12/28/00 7:25am-> 9:10am 12/28/00 11:00am->11:30am */ /* 12/29/00 6:50am-> 8:15am 12/29/00 1:30pm-> 2:30pm */ /* 12/30/00 6:25am-> : am / /00 : pm-> : pm */ /* / /00 : am-> : am / /00 : pm-> : pm */ /*-------------------------------------------------------------------*/ //.da_year.da_day.da_mon #include #include #include #include #include #include FILE *fle; int gti(void); void diffdt(void); int gtdts(void); void rddt(char *msg); void gtd(void); void prtbx(int x, int y, int xr, int yl, int clr, int clr2, char *ms); void prtln(void); int gts(char *msg, char *ch); struct dosdate_t crdt; // vars-> crdt.year crdt.day crdt.month // crdt.dayofweek int i, j, k, m, o, y, d, mrd, drd, yrd, b, e, secs, em, ed, yp, pd, r, ll, ii, scr, txt2, txt3, txt4, txt5, txt6; // nmb[8] = { 15, 7, 12, 9, 10, 13, 0, 1 }; int db, mb, yb, dd, md, yd, de, me, ye, dm=55, dm1=55; unsigned int total; unsigned char clrchg, crr=1, hlp; char *bsp, *fdp, *spt, xs[81], rs[86], bs[86]; int reffm[15] = { 0, 25, 5, 14, 24, 3, 13, 22, 31, 10, 20, 29, 10, 19, 28 }; char wkdys[ 8][10] = { " ", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; char mnths[13][22] = { " ", "J A N U A R Y", "F E B R U A R Y", "M A R C H", "A P R I L", "M A Y", "J U N E", "J U L Y", "A U G U S T", "S E P T E M B E R", "O C T O B E R", "N O V E M B E R", "D E C E M B E R" }, smnths[13][4] = { " ", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; char msg[32][12], ybuf[5], yprt[8] = "1 3 5 7"; char days[32][3] = { " ", " 1", " 2", " 3", " 4", " 5", " 6", " 7", " 8", " 9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", }; // Â Á ÚÄ¿ ÀÙ char tpbx[81] = { "+---------------------------------------" "----------------------------------------" }, sdbx[81] = { "| " " " }, btbx[80] = { "+---------------------------------------" "---------------------------------------" }, top1[66] = { " " "ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß" }; char tpln[] = " ÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ" "ÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ ", lsln[] = " - - Á - - Á - - Á - - " "Á - - Á - - Á - - "; char hrzn[] = " ÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄ" "ÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄ", vert[] = " ³ ³ ³ " "³ ³ ³ "; char dts[71], tme[13], rpt1[41], rpt2[41]; int stof[13] = { 0, 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }, mof[13], dofm[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }, gggg[6] = { 6, 9, 12, 15, 18, 21 }; long double mp=29.53058773148148, kmns, xx, yy; float prt1, prt2; //===================================================// void main() {if ((fle=fopen("c01xclrs.txt", "r")) == NULL) goto nofile; fgets(bs, 22, fle); fclose(fle); rs[2] = 0; rs[0] = bs[ 1]; rs[1] = bs[ 2]; scr = atoi(rs); rs[0] = bs[ 4]; rs[1] = bs[ 5]; txt2 = atoi(rs); rs[0] = bs[ 7]; rs[1] = bs[ 8]; txt3 = atoi(rs); rs[0] = bs[10]; rs[1] = bs[11]; txt4 = atoi(rs); rs[0] = bs[13]; rs[1] = bs[14]; txt5 = atoi(rs); rs[0] = bs[16]; rs[1] = bs[17]; txt6 = atoi(rs); goto initial; nofile: scr=7; txt2=0; txt3=1; txt5=8; txt4=11; txt6=7; initial: gtd(); ll = gtdts(); clrscrn: window( 1, 2, 80, 22); textcolor(txt2); textbackground(scr); clrscr(); begin: window( 1, 1, 80, 1); textcolor(txt5); textbackground(scr); cprintf("%s", top1); clreol(); start: prtln(); //===================================================// //---------------- cal2: if (crr) { y = crdt.year; m = crdt.month; d = crdt.day; crr = 0; } if (y<10) y = 2000 + y; else if (y<100) y = 1900 + y; adjust: _setcursortype(0); if (y<1910) y = 1910; if (y>2050) y = 2050; dofm[2] = 28; if (4*(y/4)==y) dofm[2] = 29; o = y - 1905; o = o + o/4 ; k = (y / 10); for (i=1;i<=12;i++) { if (4*(y/4)==y && i>2) j = o + 1; else j = o; mof[i] = (stof[i] + j) % 7; } // mof declared yb = 10 * k; mb = 1; db = reffm[k-190]; ye = y; me = 3; de = 20; diffdt(); kmns = double(total) / mp; xx = double(1) - (kmns - double(int(kmns))); yy = (mp * xx) + double(1.1); i = yy; if (i<12) { em = 3; ed = 20 + i; } else { em = 4; ed = i - 11; } i = (mof[em] + ed - 1) % 7; if (i>0) ed = ed + 7 - i; else ed = ed + 7; if (ed>31) { em = 4; ed = ed -31; } itoa(y, ybuf, 10); for (i=0;i<4;i++) yprt[i+i] = ybuf[i]; adjmnth: hlp = 0; for (i=1;i<32;i++) msg[i][0] = 0; switch (m) {case 1 : strcpy(msg[ 1], "newyrs dy "); if (y>1985) strcpy(msg[15], "mlk br dy"); break; case 2 : strcpy(msg[14], "Vlntns dy "); if (y<1977) { strcpy(msg[17], "Wash br dy"); break; } if (mof[m]<2) strcpy(msg[16-mof[m]], "presdnt dy"); else strcpy(msg[23-mof[m]], "presdnt dy"); break; case 3 : strcpy(msg[17], "StPats dy "); break; case 5 : strcpy(msg[30], "mem dy"); break; case 6 : strcpy(msg[14], "flg dy"); break; case 7 : strcpy(msg[ 4], "indpnce dy"); break; case 9 : if (mof[m]<2) strcpy(msg[2-mof[m]], "labor dy "); else strcpy(msg[9-mof[m]], "labor dy "); break; case 10 : strcpy(msg[31], "Halloween"); break; case 11 : strcpy(msg[11], "vtrns dy"); if (mof[m]<5) strcpy(msg[26-mof[m]], "thnksgvng"); else strcpy(msg[33-mof[m]], "thnksgvng"); break; case 12 : strcpy(msg[25], "Christmas"); strcpy(msg[31], "newyrs eve"); } if (m==em) strcpy(msg[ed], "Easter"); k = (y / 10); yb = 10 * k; mb = 1; db = reffm[k-190]; ye = y; me = m; de = 0; if (yb==ye && me==1) { dm = db; goto prtcal; } diffdt(); kmns = double(total) / mp; xx = double(1) - (kmns - double(int(kmns))); yy = (mp * xx) + double(1.1); dm = yy; dm1 = 55; k = int(yy + mp); if (k<=dofm[m]) dm1 = k; prtcal: window( 1, 2, 80, 22); textcolor(txt2); textbackground(scr); cprintf(" %-22s %51s\r\n", mnths[m], yprt); textcolor(txt5); cprintf("%s\r\n", tpln); textcolor(txt2); cprintf( " Sunday Monday Tuesday " " Wednesday Thursday Friday Saturday " "\r"); textcolor(txt5); cprintf(" ³"); for (i=1;i<=7;i++) { gotoxy( 9+wherex(), wherey()); cprintf(" ³"); } cprintf("\r\n"); k = 0; o = (6 + mof[m] + dofm[m]) / 7; i = 1; prtcallp: pd = i - mof[m]; if (pd>dofm[m]) goto endprtcal; textcolor(txt5); if (k==0) { cprintf("%s\r\n", hrzn); cprintf("%s\r\n%s", vert, vert); gotoxy( 2, -1+wherey()); }//end if block gotoxy(wherex()+1, wherey()); textcolor(txt3); if (d>0 && d==pd) textcolor(txt4);//textbackground(scr); if (pd<0) cprintf(" "); else if (pd<=dofm[m]) cprintf(" %s", days[pd]); textcolor(txt2); if (dm==pd || dm1==pd) cprintf(" fm "); else cprintf(" "); gotoxy(wherex()-10, 1+wherey()); if (pd>0) cprintf("%-10s", msg[pd]); else cprintf(" "); gotoxy(wherex(), -1+wherey()); k = k + 1; if (k>6) { if (pd>=dofm[m]) goto endprtcal; k = 0; cprintf("\r\n\r\n"); }//end if block \r\n i = i +1; goto prtcallp; //end i loop endprtcal: textcolor(txt5); if (o<6) { cprintf("\r\n\n%s", lsln); window( 1, gggg[o], 80, 22); clrscr(); } //============================== tmeloop: if (kbhit()==0) goto fgretme; i = getch(); if (i==0) i = getch() + 100; switch (i) {case 177 : { m = m + 1; d = 0; if (m>12) { m = 1; y = y + 1; goto adjust; } goto adjmnth; } case 175 : { m = m - 1; d = 0; if (m<1) { m = 12; y = y - 1; goto adjust; } goto adjmnth; } case 'x' : goto ortn; case 'y' : d = 0; prtbx( 1, 21, 18, 23, 7, 7, " change year "); y = gts(" year: ", rs); if (rs[0]==0) crr = 1; goto start; case 'p' : crr = 1; goto start; case 'd' : goto off; case 159 : scr = scr + 1; if (scr>7) scr = 0; clrchg = 1; goto clrscrn; case 160 : txt2 = txt2 + 1; if (txt2>15) txt2 = 0; clrchg = 1; goto prtcal; case 161 : txt3 = txt3 + 1; if (txt3>15) txt3 = 0; clrchg = 1; goto prtcal; case 162 : txt4 = txt4 + 1; if (txt4>15) txt4 = 0; crr = 1; clrchg = 1; goto cal2; case 163 : txt5 = txt5 + 1; if (txt5>15) txt5 = 0; clrchg = 1; goto begin; case 164 : txt6 = txt6 + 1; if (txt6>15) txt6 = 0; clrchg = 1; prtln(); goto tmeloop; case 't' : prtbx( 1, 23, 20, 25, 116, 112, " Timer "); secs = gts(" seconds: ", bs); if (bs[0]==0) goto start; b = time(NULL); _setcursortype(0); tmrloop: gtd(); gtdts(); prtln(); e = time(NULL); if (kbhit()!=0) { j = getch(); if (j==0) getch(); goto exittmr; } if (double(secs)>=difftime(e, b)) goto tmrloop; exittmr: prtbx( 20, 23, 39, 25, 24, 30, ""); _setcursortype(0); cprintf(" Count Down Ended"); delay(4000); secs = 0; goto tmeloop; }//end sw list if (479 change year of the month on screen\r\n"); cprintf(" x exit c01x"); } else goto prtcal; goto tmeloop; fgretme: gtd(); gtdts(); prtln(); goto tmeloop; //-------------------- off: prtbx( 21, 2, 65, 23, 120, 112, "--- Calculate Differences "); again: rddt(" enter Begin date: "); cprintf(" %2i/%2i/%4i", mrd, drd, yrd); yb = yrd; mb = mrd; db = drd; rddt("\r\n enter End date: "); cprintf(" %2i/%2i/%4i", mrd, drd, yrd); ye = yrd; me = mrd; de = drd; if (yb51100) { cprintf("\r\n dates wrong..."); goto badyrs; } cprintf("\r\n Total Diff = %u days \r\n", total); badyrs: cprintf(" another interval(y)? "); i = getch(); if (i==121) { cprintf("\r"); clreol(); goto again; } goto start; //---------------- ortn: if (!clrchg) goto nooutput; if ((fle=fopen("c01xclrs.txt", "w")) == NULL) { printf("err in open"); return; } bs[0] = 0; sprintf(rs, "%3i", scr); strcat( bs, rs); sprintf(rs, "%3i", txt2); strcat( bs, rs); sprintf(rs, "%3i", txt3); strcat( bs, rs); sprintf(rs, "%3i", txt4); strcat( bs, rs); sprintf(rs, "%3i", txt5); strcat( bs, rs); sprintf(rs, "%3i", txt6); strcat( bs, rs); fputs(bs, fle); fclose(fle); nooutput: window( 1, 1, 80, 25); gotoxy( 1, 11); _setcursortype(2); return; } //end Main //--------------------------------------------- //==get chr string for rtns==// int gts(char *msg, char *ch) { char bs[80], *cpt; cprintf("%s", msg); bs[0] = 79; cpt = cgets(bs); strcpy( ch, cpt); return(atoi(ch)); } //------------------// void diffdt(void) {dofm[2] = 28; if (4*(yb/4)==yb) dofm[2] = 29; yd = ye - yb; total = dofm[mb] - db + de; if (yd==0) { md = me - mb; if (md==0) { total = de - db; goto fndtotal; } if (md==1) goto fndtotal; for (i=mb+1;istrlen(bs)-5) break; bs[ii+2] = ms[ii]; } cprintf("%s", bs); for (ii=0;ii49) { strcpy(bs, "pm"); rs[2] = 0; rs[0] = tme[0]; rs[1] = tme[1]; k = atoi(rs) - 12; sprintf(rs, "%2i", k); tme[0] = rs[0]; tme[1] = rs[1]; }//end pm block strcat(tme, bs); return; } //end gtd rtn //--get dts strng---// int gtdts(void) { strcpy(bs, wkdys[1+crdt.dayofweek]); bs[3] = 0; j = crdt.day; sprintf(dts, " %s %i, %4u %s ", smnths[crdt.month], j, crdt.year, bs ); return(strlen(dts)); } //end gtdts rtn //--print report----// void prtln(void) { window( 1, 23, 80, 25); textcolor(txt2); textbackground(scr); if (secs==0) cprintf(" "); else { mrd = secs - int(difftime(e, b)); drd = mrd / 60; mrd = mrd % 60; cprintf("%4i mins%3i secs " " ", drd, mrd); }//end else block textattr(scr); cprintf("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß" "ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß "); textattr(txt6); cprintf("%s", rpt1); clreol(); cprintf("\r\n°°°°°%s°°°°°°°° %s °° %s", dts, tme, rpt2); clreol();//textattr(112); window( 1, 2, 80, 22); return; } //end prtln rtn //------------------// //----end of program-------//