```
from jqdata import *
def get_before_after_trade_days(date, count, is_before):
"""
获取某日前或者第几个交易日的方法
"""目前只能获取2005-01-01到2019-12-31日的交易日,如果获取的日期较多时(例如一年252个),请先估算下是否超出这个范围
todo:下次再修改超出这个日期范围的问题
# 得到该日期前n天的交易日
_before_days = get_trade_days(end_date=date, count=count + 5)
# 得到该日期后n天的交易日
_end_date = datetime.datetime.strptime(str(date),'%Y-%m-%d')
# 获取该天count*2天后日期作为end_date
last_date = _end_date + datetime.timedelta(days = (count*2 + 1))
_after_days = get_trade_days(start_date=date, end_date=last_date)
# 将date的格式转为datetime.date
_date = datetime.datetime.strptime(date,"%Y-%m-%d").date()
# 区分输入的日期是不是交易日
if _date == _before_days[-1]:
# print("输入的日期{0}为交易日...".format(date))
before_days = _before_days[-1-count]
if count == 1:
after_days = _after_days[1]
else:
after_days = _after_days[count]
else:
# print("输入的日期{0}不是交易日...".format(date))
before_days = _before_days[-count]
after_days = _after_days[count-1]
# 获取前还是后n个交易日
if is_before == True:
trade_day = before_days
else:
trade_day = after_days
return trade_day
# 计算对应标的下一个交易日的涨跌幅
end_date = '2019-07-27'
tomorrow_date = get_before_after_trade_days(end_date, 1, False) # 交易日,后一个有问题
print(tomorrow_date)
tomorrow_date = get_before_after_trade_days(end_date, 2, False)
print(tomorrow_date)
tomorrow_date = get_before_after_trade_days(end_date, 1, True)
print(tomorrow_date)
tomorrow_date = get_before_after_trade_days(end_date, 2, True)
print(tomorrow_date)
# 计算对应标的下一个交易日的涨跌幅
end_date = '2019-07-26'
tomorrow_date = get_before_after_trade_days(end_date, 1, False) # 交易日,后一个有问题
print(tomorrow_date)
tomorrow_date = get_before_after_trade_days(end_date, 2, False)
print(tomorrow_date)
tomorrow_date = get_before_after_trade_days(end_date, 1, True)
print(tomorrow_date)
tomorrow_date = get_before_after_trade_days(end_date, 2, True)
print(tomorrow_date)
```
2018-12-19