42 double sec = 2.345678901;
43 const char *ISOstring;
45 int doy, ifleapyear, y1;
56 printf(
"Start date/time components: %d-%d-%d %d:%d:%13.11g\n", y, m + 1, d, hour, min, sec );
58 setFromUT( y, m, d, hour, min, sec, &MJD2, 0 );
61 printf(
"date/time components: %d-%d-%d %d:%d:%13.11g\n\n", y, m + 1, d, hour, min, sec );
64 printf(
" MJD = %18.10f \n",
getMJD( &MJD2 ) );
65 printf(
" JD = %18.10f \n\n",
getJD( &MJD2 ) );
68 printf(
"ISO string = '%s'\n\n", ISOstring );
70 strfMJD( &( buf[0] ), 360,
"%Y-%m-%d %H:%M:%S%.", &MJD2, 0, 0 );
71 printf(
"strfMJD:ISO equiv: '%s'\n", buf );
72 strfMJD( &( buf[0] ), 360,
"%Y-%m-%dT%H:%M:%S%4Z", &MJD2, 0, 0 );
73 printf(
"strfMJD:ISO equiv: '%s'\n", buf );
75 getYAD( &y1, &ifleapyear, &doy, &MJD2, 0 );
76 setFromDOY( y, doy, hour, min, sec, &MJD1, 0 );
79 printf(
"difference MJD (month/day) - MJD(doy) '%g'\n\n", zeroTest );
83 setFromUT( y, m, d, hour, min, sec, &MJD2, 0 );
85 printf(
"difference MJD (d-1, h+24) - MJD(d, h) '%g'\n\n", zeroTest );
88 printf(
"CDF epoch sec %18.3f\n", epoch );
90 printf(
"from CDF ISO string (CDF epoch is accurate to msec only) = '%s'\n",
getISOString( &MJD2, 1, 0 ) );
92 printf(
"Day of week is/was %s\n\n",
getDayOfWeek( &MJD2 ) );
95 printf(
"ISO string = '%s'\n\n", ISOstring );
97 printf(
"for %s, MJD = %d, seconds = %17.11g\n", ISOstring, MJD1.
base_day, MJD1.
time_sec );
99 printf(
"ISO string = '%s'\n\n", ISOstring );
101 printf(
"for %s, MJD = %d, seconds = %17.11g\n\n", ISOstring, MJD1.
base_day, MJD1.
time_sec );
109 setFromUT( y, m, d, hour, min, sec, &MJD1, 0 );
111 printf(
"Gregorian = '%s'\n", &( copy[0] ) );
113 printf(
"%s Julian = '%s' Gregorian, (give us back our 11 days)\n",
getISOString( &MJD1, 1, 1 ), &( copy[0] ) );
119 used =
strfMJD( &( buf[0] ), 360,
" strfMJD():\n --------\n '%+' \n %c\n %D %F \n %j \n %r \n %s \n %v\n\n", &MJD2, 0, 0 );
120 printf(
"chars %d for \n%s\n", (
int) used, buf );
124 ptm = gmtime( &localt );
127 strftime( &( buf[0] ), 360,
128 " strftime(): (invalid before 1970 on some systems and subject to time zones on all systems)\n ------\n '%a %b %e %H:%M:%S UTC %Y' \n %c\n %D %F \n %j \n %r \n %s \n %e-%b-%Y", ptm );
140 strftime( &( buf[0] ), 360,
141 " strftime(): (invalid before 1970)\n ------\n '%a %b %d %H:%M:%S UTC %Y' \n %c\n %m/%d/%y %Y-%m-%d \n %j \n %I:%M:%S %p \n %%s not implemented \n %d-%b-%Y", ptm );
143 printf(
"%s\n", buf );
size_t strfMJD(char *buf, size_t len, const char *format, const MJDtime *MJD, int forceJulian, int inleap)
int setFromUT(int year, int month, int day, int hour, int min, double sec, MJDtime *MJD, int forceJulian)
void getYAD(int *year, int *ifleapyear, int *doy, const MJDtime *MJD, int forceJulian)
const char * getDayOfWeek(const MJDtime *MJD)
void breakDownMJD(int *year, int *month, int *day, int *hour, int *min, double *sec, const MJDtime *MJD, int forceJulian)