aboutsummaryrefslogtreecommitdiffstats
path: root/python/dates.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/dates.py')
-rw-r--r--python/dates.py13
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()