double DLL_FUNC decimal_day_to_dmy( double jd, long *year, int *month, const int calendar) { int day; jd += .5; day_to_dmy( (long)jd, &day, month, year, calendar); return( (double)day + jd - floor( jd)); }
char * day_to_ddmmmyyyy(long int day_no) /* QM format day number */ { short int year; short int mon; short int day; short int day_of_year; static char date_string[11+1]; day_to_dmy(day_no, &day, &mon, &year, &day_of_year); /* Build result string */ sprintf(date_string, "%2d %.3s %4d", (int)day, month_names[mon - 1], (int)year); UpperCaseString(date_string); return date_string; }
double DLL_FUNC split_time( double jd, long *year, int *month, int *day, int *hr, int *min, const int time_format) { long int_jd; double seconds; jd += .5; int_jd = (long)floor( jd); jd = (jd - (double)int_jd) * 1440.; /* t is now in minutes */ *min = (int)jd; if( *min == 1440) /* evade rounding errors: */ { int_jd++; jd = 0.; *min = 0; } seconds = (jd - (double)*min) * 60.; day_to_dmy( int_jd, day, month, year, time_format & CALENDAR_MASK); *hr = *min / 60; *min %= 60; return( seconds); }