搭建一年完整日历

本文介绍了如何使用Python生成特定年份的交易日历,包括获取交易日、正常自然日和节假日列表。通过对比自然日与交易日,筛选出节假日,并进一步排除周末,得到纯粹的非交易日假期。
import datetime
import accounts ##自己创建,用来存放用户名密码服务器和端口的文件

#########
#交易日历部分
trading_list=[]
trading_days = get_trading_dates(start_date=20160101,end_date=20161231,market='hk')
for daay in trading_days:
    daay = daay.strftime('%Y-%m-%d')
    trading_list.append(daay)
print(trading_list)

###########
#一年的正常自然日日历
datestart='2016-01-01'
dateend='2016-12-31'
datestart=datetime.datetime.strptime(datestart,'%Y-%m-%d') 
dateend=datetime.datetime.strptime(dateend,'%Y-%m-%d') 
date_list = [] 
date_list.append(datestart.strftime('%Y-%m-%d')) 
while datestart<dateend: 
    # 日期叠加一天 
    datestart+=datetime.timedelta(days=+1) # 日期转字符串存入列表 
    date_list.append(datestart.strftime('%Y-%m-%d')) 
    
print(date_list)

##############
#得到节假日和双休日
k = list(set(date_list).difference(set(trading_list)))
weekends_and_holidays = sorted(k)

##############
#干掉双休日,留下休假日。因为对手方只有公休日的表格...
for i in weekends_and_holidays:
  #today=int(time.strftime("%w"));
      anyday = datetime.datetime.strptime(i,'%Y-%m-%d').strftime("%w")
  #anyday=datetime.date(2017,1,28).strftime("%w");
      if (anyday != '6' and anyday != '0'):
        print(i)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

取啥都被占用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值