diff options
Diffstat (limited to 'python/dates.py')
| -rw-r--r-- | python/dates.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/python/dates.py b/python/dates.py index 025949b6..348c2b48 100644 --- a/python/dates.py +++ b/python/dates.py @@ -2,7 +2,12 @@ import datetime import pandas as pd import unittest -from dateutil.relativedelta import relativedelta +from dateutil.relativedelta import relativedelta, WE, MO +try: + from dateutil.parser import isoparse +except ImportError: + from dateutil.parser import parse as isoparse + from pandas.tseries.offsets import CustomBusinessDay, Day, QuarterBegin from pandas.tseries.holiday import get_calendar, HolidayCalendarFactory, GoodFriday @@ -27,6 +32,12 @@ def previous_twentieth(d): r -= relativedelta(months = mod) return r +def imm_date(d): + if isinstance(d, str): + d = isoparse(d) + r = d + relativedelta(day=1, weekday=WE(3)) + return r + relativedelta(weekday=MO(-1)) + def days_accrued(tradedate): tradedate = pd.Timestamp(tradedate) start_protection = tradedate + Day() |
