home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / dev / Libraries / Date / src / datetest.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-08  |  20.9 KB  |  666 lines

  1.  #include <stdio.h>
  2.  #include "Date.h"
  3.  #ifdef _AMIGA
  4.    #ifdef LIBTEST
  5.      #include "Date_pragmas.h"
  6.      #include <proto/exec.h>
  7.    #endif
  8.  #endif
  9.  
  10.  
  11.  int readintyear(void)
  12.  
  13.  {
  14.   int year=0;
  15.  
  16.   printf("(integer)year: ");
  17.   scanf("%d",&year);
  18.   return(year);
  19.  }
  20.  
  21.  
  22.  unsigned short readshortcardmonth(void)
  23.  
  24.  {
  25.   unsigned int month=0;
  26.  
  27.   printf("(shortcard)month: ");
  28.   scanf("%u",&month);
  29.   return((unsigned short)month);
  30.  }
  31.  
  32.  
  33.  unsigned short readshortcardday(void)
  34.  
  35.  {
  36.   unsigned int day=0;
  37.  
  38.   printf("(shortcard)day: ");
  39.   scanf("%u",&day);
  40.   return((unsigned short)day);
  41.  }
  42.  
  43.  
  44.  Weekdays readweekday(void)
  45.  
  46.  {
  47.   unsigned int wday=0;
  48.  
  49.   do
  50.    {
  51.     printf("weekday: 1=Monday; ...7=Sunday: ");
  52.     scanf("%u",&wday);
  53.    }
  54.   while (wday > 7);
  55.   return((Weekdays)wday);
  56.  }
  57.  
  58.  
  59.  int readintdays(void)
  60.  
  61.  {
  62.   int days=0;
  63.  
  64.   printf("(integer)days: ");
  65.   scanf("%d",&days);
  66.   return(days);
  67.  }
  68.  
  69.  
  70.  unsigned int readcardyear(void)
  71.  
  72.  {
  73.   unsigned int year=0;
  74.  
  75.   printf("(cardinal)year: ");
  76.   scanf("%u",&year);
  77.   return(year);
  78.  }
  79.  
  80.  
  81.  unsigned long readlongcarddays(void)
  82.  
  83.  {
  84.   unsigned long day=0;
  85.  
  86.   printf("(longcard)days: ");
  87.   scanf("%lu",&day);
  88.   return(day);
  89.  }
  90.  
  91.  
  92.  unsigned short readshortcardhour(void)
  93.  
  94.  {
  95.   unsigned int hour=0;
  96.  
  97.   printf("(shortcard)hour: ");
  98.   scanf("%u",&hour);
  99.   return((unsigned short)hour);
  100.  }
  101.  
  102.  
  103.  unsigned short readshortcardmin(void)
  104.  
  105.  {
  106.   unsigned int min=0;
  107.  
  108.   printf("(shortcard)min: ");
  109.   scanf("%u",&min);
  110.   return((unsigned short)min);
  111.  }
  112.  
  113.  
  114.  unsigned short readshortcardsec(void)
  115.  
  116.  {
  117.   unsigned int sec=0;
  118.  
  119.   printf("(shortcard)sec: ");
  120.   scanf("%u",&sec);
  121.   return((unsigned short)sec);
  122.  }
  123.  
  124.  
  125.  float readrealtime(void)
  126.  
  127.  {
  128.   float jd=0.0;
  129.  
  130.   printf("(real)time: ");
  131.   scanf("%f",&jd);
  132.   return(jd);
  133.  }
  134.  
  135.  
  136.  short readshortintdegree(void)
  137.  
  138.  {
  139.   int degree=0;
  140.  
  141.   printf("(shortint)degree: ");
  142.   scanf("%d",°ree);
  143.   return((short)degree);
  144.  }
  145.  
  146.  
  147.  unsigned long readlongcardsecs(void)
  148.  
  149.  {
  150.   unsigned long secs=0;
  151.  
  152.   printf("(longcard)secs: ");
  153.   scanf("%lu",&secs);
  154.   return(secs);
  155.  }
  156.  
  157.  
  158.  float readrealmeridian(void)
  159.  
  160.  {
  161.   float jd=0.0;
  162.  
  163.   printf("(real)meridian: ");
  164.   scanf("%f",&jd);
  165.   return(jd);
  166.  }
  167.  
  168.  
  169.  float readrealpos(void)
  170.  
  171.  {
  172.   float jd=0.0;
  173.  
  174.   printf("(real)ps: ");
  175.   scanf("%f",&jd);
  176.   return(jd);
  177.  }
  178.  
  179.  
  180.  Languages readlanguage(void)
  181.   {
  182.    unsigned int lang=0;
  183.  
  184.   do
  185.    {
  186.     printf("language: 0=locale.library; 1=English; 2=Deutsch; 3=francais; 4=espanol; 5=portugues; 6=dansk 7=italiano 8=nederlands 9=norsk 10=svenska 11=polski 12=suomalainen: ");
  187.     scanf("%u",&lang);
  188.    }
  189.   while (lang > 10);
  190.   return((Languages)lang);
  191.   }
  192.  
  193.  
  194.  unsigned long readjd(void)
  195.   {
  196.    unsigned long jd=0;
  197.  
  198.    printf("(unsigned long)jd: ");
  199.    scanf("%lu",&jd);
  200.    return(jd);
  201.   }
  202.  
  203.  
  204.  MoonPhases readmoonphase(void)
  205.  
  206.  {
  207.   unsigned int moon=0;
  208.  
  209.   do
  210.    {
  211.     printf("moon: 0=new; 1=first quarter; 2=full; 3=last quarter: ");
  212.     scanf("%u",&moon);
  213.    }
  214.   while (moon > 3);
  215.   return((MoonPhases)moon);
  216.  }
  217.  
  218.  
  219.  DateTexts readdt(void)
  220.   {
  221.    unsigned int dt=0;
  222.  
  223.   do
  224.    {
  225.     printf("date text: 0=DAY; 1=MONTH; 2=YEAR; 3=WEEK; 4=WEEKDAY; 5=HOUR; 6=MINUTE; 7=SECOND; 8=YESTERDAY; 9=TODAY; 10=TOMORROW : ");
  226.     scanf("%u",&dt);
  227.    }
  228.   while (dt > 10);
  229.   return((DateTexts)dt);
  230.   }
  231.  
  232.  
  233.  bool readplural(void)
  234.   {
  235.    unsigned int plural;
  236.  
  237.   do
  238.    {
  239.     printf("plural: 0=false; 1=true: ");
  240.     scanf("%u",&plural);
  241.    }
  242.   while (plural > 1);
  243.   return((bool)plural);
  244.   }
  245.  
  246.  
  247.  long readlongsecs(void)
  248.  
  249.  {
  250.   long secs=0;
  251.  
  252.   printf("secs: ");
  253.   scanf("%ld",&secs);
  254.   return(secs);
  255.  }
  256.  
  257.  
  258.  void main(void)
  259.  
  260.  {
  261.   unsigned int        input=0,repeat=0;
  262.   Weekdays        wd;
  263.   unsigned short    d=0,m=0,h=0,s=0,len,d2,m2,h2,s2;
  264.   int            y=0,y2;
  265.   char                  text[20];
  266.   unsigned long        jd;
  267.   long            secs;
  268.  
  269.   #ifndef __SASC_650
  270.     _DateInit();
  271.   #endif
  272.   #ifdef _AMIGA
  273.     #ifdef LIBTEST
  274.       static struct Library *DateBase;
  275.  
  276.       DateBase = OpenLibrary("date.library",0);
  277.       if (DateBase != NULL)
  278.        {
  279.     #endif
  280.   #endif
  281.   do
  282.    {
  283.     printf("----------------------------------------------------------------\n");
  284.     printf("01 : JulianLeapYear            | 02 : GregorianLeapYear\n");
  285.     printf("03 : HeisLeapYear              | 04 : JulianMonthDays\n");
  286.     printf("05 : GregorianMonthDays        | 06 : HeisMonthDays\n");
  287.     printf("07 : JulianYearDays            | 08 : GregorianYearDays\n");
  288.     printf("09 : HeisYearDays              | 10 : JulianDayDiff\n");
  289.     printf("11 : GregorianDayDiff          | 12 : HeisDayDiff\n");
  290.     printf("13 : Compare2Dates             | 14 : Compare2Times\n");
  291.     printf("15 : DateText                  | 16 : JulianWeekday\n");
  292.     printf("17 : GregorianWeekday          | 18 : HeisWeekday\n");
  293.     printf("19 : JulianDaysBeforeWeekday   | 20 : GregorianDaysBeforeWeekday\n");
  294.     printf("21 : HeisDaysBeforeWeekday     | 22 : JulianDaysAfterWeekday\n");
  295.     printf("23 : GregorianDaysAfterWeekday | 24 : HeisDaysAfterWeekday\n");
  296.     printf("25 : JulianDiffDate            | 26 : GregorianDiffDate\n");
  297.     printf("27 : HeisDiffDate              | 28 : JYearToScaliger\n");
  298.     printf("29 : GYearToScaliger           | 30 : HYearToScaliger\n");
  299.     printf("31 : ScaligerYearToJ           | 32 : ScaligerYearToG\n");
  300.     printf("33 : ScaligerYearToH           | 34 : JSYearToJD\n");
  301.     printf("35 : GSYearToJD                | 36 : HSYearToJD\n");
  302.     printf("37 : JDtoMJD                   | 38 : MJDtoJD\n");
  303.     printf("39 : JulianToJD                | 40 : GregorianToJD\n");
  304.     printf("41 : HeisToJD                  | 42 : TimeToJD\n");
  305.     printf("43 : JDToTime                  | 44 : GregorianMoonAge\n");
  306.     printf("45 : GregorianEaster           | 46 : TimeZoneFactor\n");
  307.     printf("47 : LMT                       | 48 : TimeToSec\n");
  308.     printf("49 : SecToTime                 | 50 : JulianWeek\n");
  309.     printf("51 : GregorianWeek             | 52 : HeisWeek\n");
  310.     printf("53 : WeekdayText               | 54 : MonthText\n");
  311.     printf("55 : WeekdayShortText          | 56 : MonthShortText\n");
  312.     printf("57 : JDToJulian                | 58 : JDToGregorian\n");
  313.     printf("59 : JDToHeis                  | 60 : JulianEaster\n");
  314.     printf("61 : HeisEaster                | 62 : GregorianMoonPhase\n");
  315.     printf("63 : TimeDiff                  | 64 : DiffTime\n");
  316.     printf("00 : Quit\n");
  317.     printf("It's your turn: ");
  318.     scanf("%u",&input);
  319.     printf("----------------------------------------------------------------\n");
  320.     do
  321.      {
  322.       switch (input)
  323.         {
  324.          case  0 : break;
  325.          case  1 : if (JulianLeapYear(readintyear()))
  326.                      printf("TRUE\n");
  327.                 else
  328.                   printf("FALSE\n");
  329.                break;
  330.          case  2 : if (GregorianLeapYear(readintyear()))
  331.                  printf("TRUE\n");
  332.                 else
  333.                   printf("FALSE\n");
  334.                    break;
  335.          case  3 : if (HeisLeapYear(readintyear()))
  336.                   printf("TRUE\n");
  337.                 else
  338.                   printf("FALSE\n");
  339.                break;
  340.          case  4 : printf("%hu\n",JulianMonthDays(readshortcardmonth(),readintyear()));
  341.                    break;
  342.          case  5 : printf("%hu\n",GregorianMonthDays(readshortcardmonth(),readintyear()));
  343.                    break;
  344.          case  6 : printf("%hu\n",HeisMonthDays(readshortcardmonth(),readintyear()));
  345.                    break;
  346.          case  7 : printf("%u\n",JulianYearDays(readintyear()));
  347.                    break;
  348.          case  8 : printf("%u\n",GregorianYearDays(readintyear()));
  349.                break;
  350.          case  9 : printf("%u\n",HeisYearDays(readintyear()));
  351.                break;
  352.          case 10 : printf("%ld\n",JulianDayDiff(readshortcardday(),readshortcardmonth(),readintyear(),readshortcardday(),readshortcardmonth(),readintyear()));
  353.                break;
  354.          case 11 : printf("%ld\n",GregorianDayDiff(readshortcardday(),readshortcardmonth(),readintyear(),readshortcardday(),readshortcardmonth(),readintyear()));
  355.                break;
  356.          case 12 : printf("%ld\n",HeisDayDiff(readshortcardday(),readshortcardmonth(),readintyear(),readshortcardday(),readshortcardmonth(),readintyear()));
  357.                break;
  358.          case 13 : printf("Date1:\n");
  359.                    d = readshortcardday();
  360.                    m = readshortcardmonth();
  361.                    y = readintyear();
  362.                    printf("Date2:\n");
  363.                    d2 = readshortcardday();
  364.                    m2 = readshortcardmonth();
  365.                    y2 = readintyear();
  366.                    printf("\nDate1 ");
  367.                    if (Compare2Dates(d,m,y,d2,m2,y2) == -1)
  368.                      printf("<");
  369.                    else if (Compare2Dates(d,m,y,d2,m2,y2) == 1)
  370.                      printf(">");
  371.                    else
  372.                      printf("=");
  373.                    printf(" Date2\n");
  374.                break;
  375.          case 14 : printf("Time1:\n");
  376.                    h = readshortcardhour();
  377.                    m = readshortcardmin();
  378.                    s = readshortcardsec();
  379.                    printf("Time2:\n");
  380.                    h2 = readshortcardhour();
  381.                    m2 = readshortcardmin();
  382.                    s2 = readshortcardsec();
  383.                    printf("\nTime1 ");
  384.                    if (Compare2Times(h,m,s,h2,m2,s2) == -1)
  385.                      printf("<");
  386.                    else if (Compare2Times(h,m,s,h2,m2,s2) == 1)
  387.                      printf(">");
  388.                    else
  389.                      printf("=");
  390.                    printf(" Time2\n");
  391.                break;
  392.          case 15 : DateText(readdt(),text,readlanguage(),readplural());
  393.                    printf("%s\n",text);
  394.                break;
  395.          case 16 : wd = JulianWeekday(readshortcardday(),readshortcardmonth(),readintyear());
  396.                      switch (wd)
  397.                        {
  398.                       case dayerr    : printf("dayerr!\n");
  399.                                    break;
  400.                       case Monday    : printf("Monday\n");
  401.                                    break;
  402.                       case Tuesday   : printf("Tuesday\n");
  403.                                    break;
  404.                       case Wednesday : printf("Wednesday\n");
  405.                                    break;
  406.                       case Thursday  : printf("Thursday\n");
  407.                                    break;
  408.                       case Friday    : printf("Friday\n");
  409.                                    break;
  410.                       case Saturday  : printf("Saturday\n");
  411.                                    break;
  412.                       case Sunday    : printf("Sunday\n");
  413.                                        break;
  414.                       default        : printf("Illegal Code!\n");
  415.                      }
  416.                break;
  417.          case 17 : wd = GregorianWeekday(readshortcardday(),readshortcardmonth(),readintyear());
  418.                      switch (wd)
  419.                        {
  420.                       case dayerr    : printf("dayerr!\n");
  421.                                    break;
  422.                       case Monday    : printf("Monday\n");
  423.                                    break;
  424.                       case Tuesday   : printf("Tuesday\n");
  425.                                    break;
  426.                       case Wednesday : printf("Wednesday\n");
  427.                                    break;
  428.                       case Thursday  : printf("Thursday\n");
  429.                                    break;
  430.                       case Friday    : printf("Friday\n");
  431.                                    break;
  432.                       case Saturday  : printf("Saturday\n");
  433.                                    break;
  434.                       case Sunday    : printf("Sunday\n");
  435.                                        break;
  436.                       default        : printf("Illegal Code!\n");
  437.                      }
  438.                break;
  439.          case 18 : wd = HeisWeekday(readshortcardday(),readshortcardmonth(),readintyear());
  440.                      switch (wd)
  441.                        {
  442.                       case dayerr    : printf("dayerr!\n");
  443.                                    break;
  444.                       case Monday    : printf("Monday\n");
  445.                                    break;
  446.                       case Tuesday   : printf("Tuesday\n");
  447.                                    break;
  448.                       case Wednesday : printf("Wednesday\n");
  449.                                    break;
  450.                       case Thursday  : printf("Thursday\n");
  451.                                    break;
  452.                       case Friday    : printf("Friday\n");
  453.                                    break;
  454.                       case Saturday  : printf("Saturday\n");
  455.                                    break;
  456.                       case Sunday    : printf("Sunday\n");
  457.                                        break;
  458.                       default        : printf("Illegal Code!\n");
  459.                      }
  460.                break;
  461.          case 19 : printf("%hu\n",JulianDaysBeforeWeekday(readshortcardday(),readshortcardmonth(),readintyear(),readweekday()));
  462.                break;
  463.          case 20 : printf("%hu\n",GregorianDaysBeforeWeekday(readshortcardday(),readshortcardmonth(),readintyear(),readweekday()));
  464.                break;
  465.          case 21 : printf("%hu\n",HeisDaysBeforeWeekday(readshortcardday(),readshortcardmonth(),readintyear(),readweekday()));
  466.                break;
  467.          case 22 : printf("%hu\n",JulianDaysAfterWeekday(readshortcardday(),readshortcardmonth(),readintyear(),readweekday()));
  468.                break;
  469.          case 23 : printf("%hu\n",GregorianDaysAfterWeekday(readshortcardday(),readshortcardmonth(),readintyear(),readweekday()));
  470.                break;
  471.          case 24 : printf("%hu\n",HeisDaysAfterWeekday(readshortcardday(),readshortcardmonth(),readintyear(),readweekday()));
  472.                break;
  473.          case 25 :
  474.                    #ifndef __cplusplus
  475.                      JulianDiffDate(readshortcardday(),readshortcardmonth(),readintyear(),readintdays(),&d,&m,&y);
  476.                    #else
  477.                      JulianDiffDate(readshortcardday(),readshortcardmonth(),readintyear(),readintdays(),d,m,y);
  478.                    #endif
  479.                    printf("%hu.%hu.%d\n",d,m,y);
  480.                break;
  481.          case 26 :
  482.                    #ifndef __cplusplus
  483.                      GregorianDiffDate(readshortcardday(),readshortcardmonth(),readintyear(),readintdays(),&d,&m,&y);
  484.                    #else
  485.                      GregorianDiffDate(readshortcardday(),readshortcardmonth(),readintyear(),readintdays(),d,m,y);
  486.                    #endif
  487.                    printf("%hu.%hu.%d\n",d,m,y);
  488.                break;
  489.          case 27 :
  490.                    #ifndef __cplusplus
  491.                      HeisDiffDate(readshortcardday(),readshortcardmonth(),readintyear(),readintdays(),&d,&m,&y);
  492.                    #else
  493.                      HeisDiffDate(readshortcardday(),readshortcardmonth(),readintyear(),readintdays(),d,m,y);
  494.                    #endif
  495.                    printf("%hu.%hu.%d\n",d,m,y);
  496.                break;
  497.          case 28 : printf("%u\n",JYearToScaliger(readintyear()));
  498.                break;
  499.          case 29 : printf("%u\n",GYearToScaliger(readintyear()));
  500.                break;
  501.          case 30 : printf("%u\n",HYearToScaliger(readintyear()));
  502.                break;
  503.          case 31 : printf("%d\n",ScaligerYearToJ(readcardyear()));
  504.                break;
  505.          case 32 : printf("%d\n",ScaligerYearToG(readcardyear()));
  506.                break;
  507.          case 33 : printf("%d\n",ScaligerYearToH(readcardyear()));
  508.                break;
  509.          case 34 : printf("%lu\n",JSYearToJD(readcardyear()));
  510.                break;
  511.          case 35 : printf("%lu\n",GSYearToJD(readcardyear()));
  512.                break;
  513.          case 36 : printf("%lu\n",HSYearToJD(readcardyear()));
  514.                break;
  515.          case 37 : printf("%lu\n",JDtoMJD(readlongcarddays()));
  516.                break;
  517.          case 38 : printf("%lu\n",MJDtoJD(readlongcarddays()));
  518.                break;
  519.          case 39 : printf("%lu\n",JulianToJD(readshortcardday(),readshortcardmonth(),readintyear()));
  520.                break;
  521.          case 40 : printf("%lu\n",GregorianToJD(readshortcardday(),readshortcardmonth(),readintyear()));
  522.                break;
  523.          case 41 : printf("%lu\n",HeisToJD(readshortcardday(),readshortcardmonth(),readintyear()));
  524.                break;
  525.          case 42 : printf("%f\n",TimeToJD(readshortcardhour(),readshortcardmin(),readshortcardsec()));
  526.                    break;
  527.          case 43 :
  528.                    #ifndef __cplusplus
  529.                      JDToTime(readrealtime(),&h,&m,&s);
  530.                    #else
  531.                      JDToTime(readrealtime(),h,m,s);
  532.                    #endif
  533.                    printf("%hu:%hu:%hu\n",h,m,s);
  534.                break;
  535.          case 44 : printf("%hu\n",GregorianMoonAge(readshortcardday(),readshortcardmonth(),readintyear()));
  536.                break;
  537.          case 45 :
  538.                    #ifndef __cplusplus
  539.                      GregorianEaster(readintyear(),&d,&m);
  540.                    #else
  541.                      GregorianEaster(readintyear(),d,m);
  542.                    #endif
  543.                    printf("%hu.%hu.\n",d,m);
  544.                break;
  545.          case 46 : printf("%hd\n",TimeZoneFactor(readshortintdegree()));
  546.                break;
  547.          case 47 : printf("%lu\n",LMT(readlongcardsecs(),readrealmeridian(),readrealpos()));
  548.                break;
  549.          case 48 : printf("%lu\n",TimeToSec(readshortcardhour(),readshortcardmin(),readshortcardsec()));
  550.                break;
  551.          case 49 :
  552.                    #ifndef __cplusplus
  553.                      SecToTime(readlongcardsecs(),&h,&m,&s);
  554.                    #else
  555.                      SecToTime(readlongcardsecs(),h,m,s);
  556.                    #endif
  557.                    printf("%hu:%hu:%hu\n",h,m,s);
  558.                break;
  559.      case 50 : printf("%hu\n",JulianWeek(readshortcardday(),readshortcardmonth(),readintyear()));
  560.            break;
  561.      case 51 : printf("%hu\n",GregorianWeek(readshortcardday(),readshortcardmonth(),readintyear()));
  562.            break;
  563.      case 52 : printf("%hu\n",HeisWeek(readshortcardday(),readshortcardmonth(),readintyear()));
  564.            break;
  565.      case 53 : len = WeekdayText(readweekday(),text,readlanguage());
  566.                printf("%hu : %s\n",len,text);
  567.                break;
  568.      case 54 : len = MonthText(readshortcardmonth(),text,readlanguage());
  569.                printf("%hu : %s\n",len,text);
  570.                break;
  571.      case 55 : len = WeekdayShortText(readweekday(),text,readlanguage());
  572.                printf("%hu : %s\n",len,text);
  573.                break;
  574.      case 56 : len = MonthShortText(readshortcardmonth(),text,readlanguage());
  575.                printf("%hu : %s\n",len,text);
  576.                break;
  577.      case 57 :
  578.                    #ifndef __cplusplus
  579.                      JDToJulian(readjd(),&d,&m,&y);
  580.                    #else
  581.                      JDToJulian(readjd(),d,m,y);
  582.                    #endif
  583.                printf("%hu.%hu.%d\n",d,m,y);
  584.                break;
  585.      case 58 :
  586.                    #ifndef __cplusplus
  587.                      JDToGregorian(readjd(),&d,&m,&y);
  588.                    #else
  589.                      JDToGregorian(readjd(),d,m,y);
  590.                    #endif
  591.                printf("%hu.%hu.%d\n",d,m,y);
  592.                break;
  593.      case 59 :
  594.                    #ifndef __cplusplus
  595.                      JDToHeis(readjd(),&d,&m,&y);
  596.                    #else
  597.                      JDToHeis(readjd(),d,m,y);
  598.                    #endif
  599.                printf("%hu.%hu.%d\n",d,m,y);
  600.                break;
  601.      case 60 :
  602.                    #ifndef __cplusplus
  603.                      JulianEaster(readintyear(),&d,&m);
  604.                    #else
  605.                      JulianEaster(readintyear(),d,m);
  606.                    #endif
  607.                    printf("%hu.%hu.\n",d,m);
  608.                break;
  609.      case 61 :
  610.                    #ifndef __cplusplus
  611.                      HeisEaster(readintyear(),&d,&m);
  612.                    #else
  613.                      HeisEaster(readintyear(),d,m);
  614.                    #endif
  615.                    printf("%hu.%hu.\n",d,m);
  616.                break;
  617.      case 62 : jd = GregorianMoonPhase(readshortcardday(),readshortcardmonth(),readintyear(),readmoonphase());
  618.                    #ifndef __cplusplus
  619.                  JDToGregorian(jd,&d,&m,&y);
  620.                    #else
  621.                  JDToGregorian(jd,d,m,y);
  622.                    #endif
  623.                printf("%hu.%hu.%d\n",d,m,y);
  624.                break;
  625.      case 63 : secs = TimeDiff(readshortcardhour(),readshortcardmin(),readshortcardsec(),readshortcardhour(),readshortcardmin(),readshortcardsec());
  626.                    if (secs < 0)
  627.                      secs = -secs;
  628.                    #ifndef __cplusplus
  629.                  SecToTime(secs,&h,&m,&s);
  630.                #else
  631.                  SecToTime(secs,h,m,s);
  632.                #endif
  633.                printf("%ld = %hu:%hu:%hu\n",secs,h,m,s);
  634.                break;
  635.      case 64 :
  636.                #ifndef __cplusplus
  637.                      DiffTime(readshortcardhour(),readshortcardmin(),readshortcardsec(),readlongsecs(),&h,&m,&s);
  638.                    #else
  639.                      DiffTime(readshortcardhour(),readshortcardmin(),readshortcardsec(),readlongsecs(),h,m,s);
  640.                    #endif
  641.                printf("%hu:%hu:%hu\n",h,m,s);
  642.                break;
  643.          default : printf("Wong number! Try again!\n");
  644.         }
  645.       if (input > 0)
  646.         {
  647.          printf("0 : Menu; >0 : test again - ");
  648.          scanf("%u",&repeat);
  649.         }
  650.       else
  651.         repeat = 0;
  652.      }
  653.     while (repeat != 0);
  654.    }
  655.   while (input != 0);
  656.   #ifndef __SASC_650
  657.     _DateCleanup();
  658.   #endif
  659.   #ifdef _AMIGA
  660.     #ifdef LIBTEST
  661.         CloseLibrary(DateBase);
  662.        }
  663.     #endif
  664.   #endif
  665.  }
  666.