static long_t asfreq_MtoD(long_t fromDate, char relation, asfreq_info *af_info) { long_t y, m, absdate; if (relation == 'S') { MtoD_ym(fromDate, &y, &m); if ((absdate = absdate_from_ymd(y, m, 1)) == INT_ERR_CODE) return INT_ERR_CODE; return absdate; } else { MtoD_ym(fromDate+1, &y, &m); if ((absdate = absdate_from_ymd(y, m, 1)) == INT_ERR_CODE) return INT_ERR_CODE; return absdate-1; } }
static npy_int64 asfreq_MtoD(npy_int64 ordinal, char relation, asfreq_info *af_info) { npy_int64 absdate; int y, m; if (relation == 'S') { MtoD_ym(ordinal, &y, &m); if ((absdate = absdate_from_ymd(y, m, 1)) == INT_ERR_CODE) return INT_ERR_CODE; return absdate - ORD_OFFSET; } else { MtoD_ym(ordinal + 1, &y, &m); if ((absdate = absdate_from_ymd(y, m, 1)) == INT_ERR_CODE) return INT_ERR_CODE; return absdate - 1 - ORD_OFFSET; } }
static npy_int64 asfreq_MtoDT(npy_int64 ordinal, char relation, asfreq_info* af_info) { npy_int64 absdate; int y, m; if (relation == 'E') { ordinal += 1; } MtoD_ym(ordinal, &y, &m); if ((absdate = absdate_from_ymd(y, m, 1)) == INT_ERR_CODE) return INT_ERR_CODE; ordinal = absdate - ORD_OFFSET; if (relation == 'E') { ordinal -= 1; } return convert_daytime(ordinal, FR_DAY, af_info->targetFreq, relation != 'S'); }