51 int len = strlen( ISOstring );
57 y = strtol( &( ISOstring[startAt] ), NULL, 10 );
58 if ( ISOstring[startAt] ==
'-' || ISOstring[startAt] ==
'+' )
64 m = strtol( &( ISOstring[startAt] ), NULL, 10 );
69 d = strtol( &( ISOstring[startAt] ), NULL, 10 );
74 h = strtol( &( ISOstring[startAt] ), NULL, 10 );
79 min = strtol( &( ISOstring[startAt] ), NULL, 10 );
84 seconds = strtod( &( ISOstring[startAt] ), NULL );
85 setFromUT( y, m - 1, d, h,
min, seconds, MJD, forceJulian );
102 int leaps, lastyear, extraDays;
109 if ( forceJulian && year <= 0 )
115 leaps = ( year - 4 ) / 4;
116 MJD->
base_day = year * 365 + leaps + doy - 678943;
118 else if ( forceJulian )
123 leaps = ( year - 1 ) / 4;
124 MJD->
base_day = year * 365 + leaps + doy - 678943;
133 leaps = lastyear / 4 - lastyear / 100 + lastyear / 400;
134 MJD->
base_day = year * 365 + leaps + doy - 678941;
137 MJD->
time_sec = sec + ( (double)
min + (
double) hour * 60. ) * 60.;
150 void setFromBCE(
int yearBCE,
int month,
int day,
int hour,
int min,
double sec,
MJDtime *MJD,
int forceJulian )
154 int year = 1 - yearBCE;
155 setFromUT( year, month, day, hour,
min, sec, MJD, forceJulian );
161 MJD->
base_day = (int) ModifiedJulianDate;
179 double seconds = cdfepoch * 0.001;
181 MJD->
base_day = (int) ( seconds / 86400.0 );
193 return seconds * 1000.;
232 static char DateTime[50];
233 int y, m, d, hour,
min;
249 sec1 = (int) sec / 10;
250 sec -= (double) sec1 * 10;
255 sprintf( DateTime,
"%04d-%02d-%02dT%02d:%02d:%01d%-11.10f", y, m + 1, d, hour,
min, sec1, sec );
257 sprintf( DateTime,
"-%04d-%02d-%02dT%02d:%02d:%01d%-11.10f", y, m + 1, d, hour,
min, sec1, sec );
260 while ( ( ptr = strrchr( &( DateTime[0] ),
' ' ) ) != NULL )
262 strcat( &( DateTime[0] ),
"Z" );
267 sprintf( DateTime,
"%04d-%02d-%02d %02d:%02d:%01d%-11.10f", y, m + 1, d, hour,
min, sec1, sec );
269 sprintf( DateTime,
"-%04d-%02d-%02d %02d:%02d:%01d%-11.10f", y, m + 1, d, hour,
min, sec1, sec );
272 slen = strlen( DateTime ) - 1;
273 while ( DateTime[slen] ==
' ' )
275 DateTime[slen] =
'\0';
279 return &( DateTime[0] );