home *** CD-ROM | disk | FTP | other *** search
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include "TextEngine.h"
-
-
- Languages readlanguage(void)
- {
- unsigned int lang=0;
-
- do
- {
- 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: ");
- scanf("%u",&lang);
- }
- while (lang > 10);
- return((Languages)lang);
- }
-
-
- char *readstring(void)
- {
- char *str = (char *)malloc(sizeof(char)*256);
-
- do
- {
- unsigned short i=0;
-
- printf("string: ");
- do
- {
- str[i] = (char)getc(stdin);
- }
- while (str[i++]!='\n');
- str[--i] = '\x0';
- }
- while (str[0] == '\n');
- return(str);
- }
-
-
- char **readstrarr(void)
- {
- char **strarr = (char **)malloc(sizeof(char *)*256);
- char *str;
- unsigned short i=0;
-
- do
- {
- unsigned short j=0;
- str = (char *)malloc(sizeof(char)*1024);
-
- printf("string of array[%hu]: ",i);
- do
- {
- str[j] = (char)getc(stdin);
- }
- while (str[j++]!='\n');
- str[--j] = '\x0';
- strarr[i++] = str;
- }
- while (str[0] != '\x0');
- strarr[--i] = NULL;
- free(str);
- return(strarr);
- }
-
-
- void main(void)
- {
- unsigned int input=0,repeat=0;
- char *str,**strarr;
- unsigned short day1,month1,day2,month2,hour1,min1,sec1,hour2,min2,sec2;
- int year1,year2;
- double jd1,jd2;
- unsigned short i;
- time_t TIME;
- struct tm *LTIME;
-
- #ifndef __SASC_650
- _DateInit();
- #endif
- TIME = time(NULL);
- LTIME = localtime(&TIME);
- day1 = (unsigned short)LTIME->tm_mday;
- month1 = (unsigned short)(LTIME->tm_mon+1);
- year1 = LTIME->tm_year;
- year1 += (year1 < 90 ? 2000 : 1900);
- hour1 = (unsigned short)LTIME->tm_hour;
- min1 = (unsigned short)LTIME->tm_min;
- sec1 = (unsigned short)LTIME->tm_sec;
- jd1 = (double)HeisToJD(day1,month1,year1)+(double)TimeToJD(hour1,min1,sec1);
- #ifndef __cplusplus
- HeisDiffDate(day1,month1,year1,500,&day2,&month2,&year2);
- #else
- HeisDiffDate(day1,month1,year1,500,day2,month2,year2);
- #endif
- hour2 = hour1;
- min2 = min1;
- sec2 = sec1;
- /* DiffTime(hour1,min1,sec1,+6,+30,+30,&hour2,&min2,&sec2); */
- jd2 = (double)HeisToJD(day2,month2,year2)+(double)TimeToJD(hour2,min2,sec2);
- do
- {
- printf("----------------------------------------------------------------\n");
- printf("01 : TextEngine | 02 : TextEngineJD\n");
- printf("00 : Quit\n");
- printf("It's your turn: ");
- scanf("%u",&input);
- getc(stdin);
- printf("----------------------------------------------------------------\n");
- do
- {
- if (input != 0)
- {
- printf("%%%% : %%\n");
- printf("%%+DTj : JD.JD date+time\n");
- printf("%%+DTJ : MJD.JD date+time\n");
- printf("%%D1[2][3] 1 : d-day/m-month/M-month text/y-year/w-weekday/\n");
- printf(" W-week/s-scaliger year/j-JD/J-MJD\n");
- printf(" 2 : v-variablen length/f-fixed length/s-short text/\n");
- printf(" l-long text\n");
- printf(" 3 : 2-short year/4-full year\n");
- printf("%%T1[2] 1 : h-24h hour/H-12h hour/M-am|pm/m-minute/s-second/\n");
- printf(" j-jd time\n");
- printf(" 2 : v-variable length/f-fixed length\n");
- printf("%%AD1 1 : d-difference in days/y-difference in years\n");
- printf("%%AT1 1 : h-full hours/m-full minutes/s-full seconds/\n");
- printf(" H-all in hours/M-all in minutes/S-all in seconds/\n");
- printf(" j-as JD difference\n");
- printf("%%S1 1 : number of array string\n");
- printf("----------------------------------------------------------------\n");
- }
- switch (input)
- {
- case 0 : break;
- case 1 : str = readstring();
- strarr = readstrarr();
- TextEngine(str,day1,month1,year1,hour1,min1,sec1,readlanguage(),day2,month2,year2,hour2,min2,sec2,strarr);
- printf("%s\n",str);
- free(str);
- for (i=0;strarr[i]!=NULL;i++)
- free(strarr[i]);
- free(strarr);
- break;
- case 2 : str = readstring();
- strarr = readstrarr();
- #ifndef __cplusplus
- TextEngineJD(str,jd1,readlanguage(),jd2,strarr);
- #else
- TextEngine(str,jd1,readlanguage(),jd2,strarr);
- #endif
- printf("%s\n",str);
- free(str);
- for (i=0;strarr[i]!=NULL;i++)
- free(strarr[i]);
- free(strarr);
- break;
- default : printf("Wong number! Try again!\n");
- }
- if (input > 0)
- {
- printf("0 : Menu; >0 : test again - ");
- scanf("%u",&repeat);
- getc(stdin);
- }
- else
- repeat = 0;
- }
- while (repeat != 0);
- }
- while (input != 0);
- #ifndef __SASC_650
- _DateCleanup();
- #endif
- }
-