home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 September / Simtel20_Sept92.cdr / msdos / turbo_c / tchk21ex.arc / DEMODATE.C < prev    next >
C/C++ Source or Header  |  1989-06-06  |  6KB  |  153 lines

  1. /* TCHK 2.1 - Howard Kapustein's Turbo C library        6-6-89      */
  2. /* Copyright (C) 1988,1989 Howard Kapustein.  All rights reserved.  */
  3.  
  4. /* demodate.c  -  used for testing TCHK date conversions */
  5.  
  6. #include <howard.h>
  7. #include <datehk.h>
  8. #include <dateconv.h>
  9. #include <stdio.h>
  10. #include <dos.h>
  11. #include <stdlib.h>
  12. #include <string.h>
  13.  
  14. void main(void);
  15.  
  16. void main(void)
  17. {
  18.     extern int _argc;
  19.     extern char **_argv;
  20.     extern char *Days[];
  21.     FILE *fp;
  22.     struct date today;
  23. /*    char *c, buff[80], *c2, temp[20];*/
  24.     char US[12],Euro[12],Jap[12], *us,*euro,*jap, Sho[80],Ful[80], *shortd,*full;
  25.     double cal,calcent,julA,julB,julE;
  26.     struct ddate dd, *DD;
  27.  
  28.     if ((_argc<2) || ((fp = fopen(_argv[1],"w")) == NULL)) {
  29.         printf("DemoDate is a demonstration program for the date conversions of TCHK.\n\n");
  30.         printf("Usage:  demodate filename.ext\n\n");
  31.         printf("    demodate will write to the file you specify a small chart\n");
  32.         printf("    of possible date conversions. Cross index the date formats\n");
  33.         printf("    you wish to convert. If the entry is 0 (zero) there is no\n");
  34.         printf("    conversion presently available. Otherwise today's date will\n");
  35.         printf("    appear in the format specified in the To column.\n\n");
  36.         printf("In the works is a generic date conversion function that can convert\n");
  37.         printf("over 40 different date formats quickly and easily. See TCHK.DOC for\n");
  38.         printf("more details.");
  39.         exit(1);
  40.     }
  41.  
  42.  
  43.  
  44.     getdate(&today);
  45.     fprintf(fp,"DATEHK\n\n");
  46.     fprintf(fp,"      To   Greg-USA  Greg-Eur  Greg-Jap  Calendar    CalCent     Jul-E       Jul-A       Jul-B       dd-> mon  day  year\n");
  47.     fprintf(fp,"From\n");
  48. /* USA*/
  49.     sprintf(US,"%02d-%02d-%02d",today.da_mon,today.da_day,today.da_year-1900);
  50.     sprintf(Euro,"%02d-%02d-%02d",today.da_day,today.da_mon,today.da_year-1900);
  51.     sprintf(Jap,"%02d-%02d-%02d",today.da_year-1900,today.da_mon,today.da_day);
  52.     cal = GregtoCal(US);
  53.     calcent = GregtoCalCent(US);
  54.     julE = julA = julB = 0;
  55.     dd.dday = dd.dmon = dd.dyear = 0;
  56. fprintf(fp,"Greg-USA   %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  57.     cal = GregEurotoCal(Euro);
  58.     calcent = GregEurotoCalCent(Euro);
  59. fprintf(fp,"Greg-Euro  %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  60.     cal = GregJaptoCal(Jap);
  61.     calcent = GregJaptoCalCent(Jap);
  62. fprintf(fp,"Greg-Jap   %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  63.     us = CaltoGreg(cal);
  64.     strcpy(US,us);
  65.     euro = CaltoGregEuro(cal);
  66.     strcpy(Euro,euro);
  67.     jap = CaltoGregJap(cal);
  68.     strcpy(Jap,jap);
  69.     julE = CaltoJul(cal);
  70.     julA = CaltoJulA(cal);
  71.     julB = CaltoJulB(cal);
  72.     calcent = CaltoCalCent(cal);
  73. fprintf(fp,"Calendar   %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  74.     cal = CalCenttoCal(calcent);
  75. fprintf(fp,"Cal-Cent   %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  76.     us = JultoGreg(julE);
  77.     strcpy(US,us);
  78.     euro = JultoGregEuro(julE);
  79.     strcpy(Euro,euro);
  80.     jap = JultoGregJap(julE);
  81.     strcpy(Jap,jap);
  82.     cal = JultoCal(julE);
  83.     calcent = JultoCalCent(julE);
  84.     DD = Jultoddate(julE);
  85.     dd = *DD;
  86. fprintf(fp,"Jul-E      %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  87.     julA = CaltoJulA(cal);
  88.     us = JulAtoGreg(julA);
  89.     strcpy(US,us);
  90.     euro = JulAtoGregEuro(julA);
  91.     strcpy(Euro,euro);
  92.     jap = JulAtoGregJap(julA);
  93.     strcpy(Jap,jap);
  94.     cal = JulAtoCal(julA);
  95.     calcent = JulAtoCalCent(julA);
  96.     DD = JulAtoddate(julA);
  97.     dd = *DD;
  98. fprintf(fp,"Jul-A      %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  99.     julB = CaltoJulB(cal);
  100.     us = JulBtoGreg(julB);
  101.     strcpy(US,us);
  102.     euro = JulBtoGregEuro(julB);
  103.     strcpy(Euro,euro);
  104.     jap = JulBtoGregJap(julB);
  105.     strcpy(Jap,jap);
  106.     cal = JulBtoCal(julB);
  107.     calcent = JulBtoCalCent(julB);
  108.     DD = JulBtoddate(julB);
  109.     dd = *DD;
  110. fprintf(fp,"Jul-B      %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  111.     julB = 0.0;
  112.     julA = 0.0;
  113.     julE = 0.0;
  114.     cal = 0;
  115.     calcent = 0;
  116.     us = CaltoGreg(cal);
  117.     strcpy(US,us);
  118.     euro = CaltoGregEuro(cal);
  119.     strcpy(Euro,euro);
  120.     jap = CaltoGregJap(cal);
  121.     strcpy(Jap,jap);
  122. fprintf(fp,"ddate      %s  %s  %s  %10.2f  %10.2f  %10.2f  %10.2f  %10.2f       %02d   %02d   %d\n",US,Euro,Jap,cal,calcent,julE,julA,julB,dd.dmon,dd.dday,dd.dyear);
  123.  
  124. julE = CaltoJul(GregtoCal(us));
  125. fprintf(fp,"\nDay of week: %d   =   %s\n",dayofweek(julE),Days[dayofweek(julE)]);
  126.  
  127. fprintf(fp,"       dd->mo dd->da dd->yr    short        full\n");
  128.     shortd = ddatetoshort(&dd);
  129.     strcpy(Sho,shortd);
  130.     full = ddatetofull(&dd);
  131.     strcpy(Ful,full);
  132. fprintf(fp,"ddate:   %2d     %2d     %2d       %s   %s\n",dd.dmon,dd.dday,dd.dyear,Sho,Ful);
  133.     DD = shorttoddate(shortd);
  134.     dd = *DD;
  135.     strcpy(Ful,"");
  136. fprintf(fp,"short:   %2d     %2d     %2d       %s   %s\n",dd.dmon,dd.dday,dd.dyear,Sho,Ful);
  137.     DD = fulltoddate(full);
  138.     dd = *DD;
  139.     strcpy(Sho,"");
  140.     strcpy(Ful,full);
  141. fprintf(fp,"full:    %2d     %2d     %2d       %s   %s\n",dd.dmon,dd.dday,dd.dyear,Sho,Ful);
  142.  
  143.  
  144. /* quit */
  145.     fclose(fp);
  146.     exit(0);
  147. }
  148.  
  149. /*  Yes, I know, this program is a memory waster. Between most
  150.     fprintfs I should free() some memory before using the variable
  151.     again. This is only a demo. When you use the functions, make
  152.     sure you free your allocated memory.                            */
  153.