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)