double get_abs_time(int freq, npy_int64 daily_ord, npy_int64 ordinal) { npy_int64 start_ord, per_day, unit; switch(freq) { case FR_HR: per_day = 24; unit = 60 * 60; break; case FR_MIN: per_day = 24*60; unit = 60; break; case FR_SEC: per_day = 24*60*60; unit = 1; break; default: return 0; // 24*60*60 - 1; } start_ord = asfreq_DtoHIGHFREQ(daily_ord, 'S', per_day); /* printf("start_ord: %d\n", start_ord); */ return (double) ( unit * (ordinal - start_ord)); /* if (ordinal >= 0) { */ /* } */ /* else { */ /* return (double) (unit * mod_compat(ordinal - start_ord, per_day)); */ /* } */ }
double getAbsTime(int freq, long_t dailyDate, long_t originalDate) { long_t startOfDay, periodsPerDay; switch(freq) { case FR_HR: periodsPerDay = 24; break; case FR_MIN: periodsPerDay = 24*60; break; case FR_SEC: periodsPerDay = 24*60*60; break; default: return 0; // 24*60*60 - 1; } startOfDay = asfreq_DtoHIGHFREQ(dailyDate, 'S', periodsPerDay); return (24*60*60)*((double)(originalDate - startOfDay))/((double)periodsPerDay); }
static long_t asfreq_DtoS(long_t fromDate, char relation, asfreq_info *af_info) { return asfreq_DtoHIGHFREQ(fromDate, relation, 24*60*60); }
static long asfreq_DtoH(long fromDate, char relation, asfreq_info *af_info) { return asfreq_DtoHIGHFREQ(fromDate, relation, 24); }
static npy_int64 asfreq_DtoS(npy_int64 ordinal, char relation, asfreq_info *af_info) { return asfreq_DtoHIGHFREQ(ordinal, relation, 24*60*60); }
static int64_t asfreq_DtoT(int64_t fromDate, char relation, asfreq_info *af_info) { return asfreq_DtoHIGHFREQ(fromDate, relation, 24*60); }