def rel_dt_test(dt, min_rel_dt=(1,1), max_rel_dt=(12,31)):
if dt_check(dt):
dt_doy = dt2doy(dt)
min_doy = dt2doy(datetime(dt.year, *min_rel_dt))
max_doy = dt2doy(datetime(dt.year, *max_rel_dt))
#If both relative dates are in the same year
if min_doy < max_doy:
min_dt = datetime(dt.year, min_rel_dt[0], min_rel_dt[1])
max_dt = datetime(dt.year, max_rel_dt[0], max_rel_dt[1])
else:
#If relative dates span Jan 1
if dt_doy >= min_doy:
min_dt = datetime(dt.year, min_rel_dt[0], min_rel_dt[1])
max_dt = datetime(dt.year + 1, max_rel_dt[0], max_rel_dt[1])
else:
min_dt = datetime(dt.year - 1, min_rel_dt[0], min_rel_dt[1])
max_dt = datetime(dt.year, max_rel_dt[0], max_rel_dt[1])
out = (dt >= min_dt) & (dt <= max_dt)
else:
out = False
return out
评论列表
文章目录