import pandas as pd

import calendar

import datetime

# 生成日期范围

date = pd.date_range("2020-01-01","2020-12-31",freq="D")

# 将日期转化为字符串

dt_str = [i.strftime("%Y%m%d") for i in date]

# 日期对应的星期(数值)

week = [int(i.strftime("%w")) for i in date] # 0表示星期日

# 日期对应的星期(中文)

week_desc = []

def week_desc_info():

for i in week:

if i == 0:

week_desc.append("星期天")

elif i == 1:

week_desc.append("星期一")

elif i == 2:

week_desc.append("星期二")

elif i == 3:

week_desc.append("星期三")

elif i == 4:

week_desc.append("星期四")

elif i == 5:

week_desc.append("星期五")

elif i == 6:

week_desc.append("星期六")

return week_desc

week_desc = week_desc_info()

# 月份(数值,01,02,...)

month = [i.strftime("%m") for i in date]

# 月份(中文)

month_desc = [str(i) + "月" for i in month]

# 季度(数值)

season = []

def season_desc_info():

for i in list(int(j) for j in month):

if i <= 3:

season.append(1)

elif i > 3 and i <= 6:

season.append(2)

elif i > 6 and i <= 9:

season.append(3)

elif i > 9 and i <= 12:

season.append(4)

return season

season = season_desc_info()

# 季度(中文)

season_desc = ["第" + str(i) + "季度" for i in season]

# 年份(数值)

year = [int(i.strftime("%Y")) for i in date]

# 年份(中文)

year_desc = [ str(i) + "年" for i in year]

# 一年中的第几天

date_seq = [int(i.strftime("%j")) for i in date]

# 一年中的第几周

week_seq = [int(i.strftime("%U")) + 1 for i in date]

# 是否周末

weekend_flag = []

def is_weekend_flag():

for i in week:

if i == 0 or i == 6:

weekend_flag.append(1)

else:

weekend_flag.append(0)

return weekend_flag

weekend_flag = is_weekend_flag()

# 是否月末

monend_flag = []

def is_month_lastday():

for i in date:

#获得当月一共有多少天(也就是最后一天的日期)

_,days_in_month = calendar.monthrange(i.year, i.month)

# 获取当天是当月中的第几天

day_of_month =int(i.strftime("%d"))

if day_of_month == days_in_month:

monend_flag.append(1)

else:

monend_flag.append(0)

return monend_flag

monend_flag = is_month_lastday()

# 节假日标识

holiday_tp = []

# 节假日名称

holiday_desc = []

def is_holiday_desc():

for i in dt_str:

if i == '20200101':

holiday_desc.append("元旦")

elif i in ('20200124','20200125','20200126','20200127','20200128','20200129','20200130'):

holiday_desc.append("春节")

elif i in ('20200404','20200405','20200406'):

holiday_desc.append("清明节")

elif i in ('20200501','20200502','20200503','20200504','20200505'):

holiday_desc.append("国际劳动节")

elif i in ('20200625','20200626','20200627'):

holiday_desc.append("端午节")

elif i in ('20201001'):

holiday_desc.append("中秋节/国庆节")

elif i in ('20201002','20201003','20201004','20201005','20201006','20201007','20201008'):

holiday_desc.append("国庆节")

else:

holiday_desc.append("非节假日")

return holiday_desc

holiday_desc = is_holiday_desc()

# 周末标识

weekend_desc = []

def is_weekend_desc():

for i in date:

date_str = i.strftime("%Y%m%d")

if date_str in ('20200119','20200201','20200426','20200509','20200628','20200927','20201010'):

weekend_desc.append("非周末")

else:

week_id = int(i.strftime("%w"))

if week_id in (0,6):

weekend_desc.append("周末")

else:

weekend_desc.append("非周末")

return weekend_desc

weekend_desc = is_weekend_desc()

# 月末标识

monend_desc = []

def is_monend_desc():

for i in monend_flag:

if i == 1:

monend_desc.append("月末")

else:

monend_desc.append("非月末")

return monend_desc

monend_desc = is_monend_desc()

# 旬(数值)

xun_id = []

def get_xun_id():

for i in date:

# 获取当天是当月中的第几天

day_of_month =int(i.strftime("%d"))

if day_of_month <= 10:

xun_id.append(1)

elif day_of_month > 10 and day_of_month <= 20:

xun_id.append(2)

else:

xun_id.append(3)

return xun_id

xun_id = get_xun_id()

# 旬(中文)

xun_desc = []

def get_xun_desc():

for i in xun_id:

if i == 1:

xun_desc.append("上旬")

elif i == 2:

xun_desc.append("中旬")

else:

xun_desc.append("下旬")

return xun_desc

xun_desc = get_xun_desc()

# 周(数值)

week_seq_id = []

def get_week_seq_id():

for i in date:

# 构造当前月的1号

first_day_of_month =datetime.date(i.year, i.month, 1)

# 一年中的第几周

end = int(i.strftime("%U")) + 1

begin = int(first_day_of_month.strftime("%U")) + 1

week_seq_id.append(end - begin + 1)

return week_seq_id

week_seq_id=get_week_seq_id()

# 周(中文)

week_seq_desc = []

def get_week_seq_desc():

for i in week_seq_id:

if i == 1:

week_seq_desc.append("第一周")

elif i == 2:

week_seq_desc.append("第二周")

elif i == 3:

week_seq_desc.append("第三周")

elif i == 4:

week_seq_desc.append("第四周")

elif i == 5:

week_seq_desc.append("第五周")

elif i == 6:

week_seq_desc.append("第六周")

else:

week_seq_desc.append("第七周")

return week_seq_desc

week_seq_desc = get_week_seq_desc()

# 构造日期维表

dataframe = pd.DataFrame({'date':dt_str,'week':week,'week_desc':week_desc,\

'month':month,'month_desc':month_desc,\

'season':season,'season_desc':season_desc,\

'year':year,'year_desc':year_desc,\

'date_seq':date_seq,'week_seq':week_seq,\

'weekend_flag':weekend_flag,'monend_flag':monend_flag,\

'holiday_desc':holiday_desc,\

'weekend_desc':weekend_desc,'monend_desc':monend_desc,\

'xun_id':xun_id,'xun_desc':xun_desc,\

'week_seq_id':week_seq_id,'week_seq_desc':week_seq_desc})

dataframe.to_excel('./data/date2020.xlsx',index=False)

python0o12_2020年日期表-python实现相关推荐

  1. python日期对照表_2020年日期表-python实现

    import pandas as pd import calendar import datetime # 生成日期范围 date = pd.date_range("2020-01-01&q ...

  2. 金字塔型php的9x9乘法口诀表,python中打印金字塔和九九乘法表的几种方法

    # 打印九九乘法表 for i in range(1,10): for j in range(1,i+1): # x=i*j # print(i,'*',j,'=',x,end=' ') print( ...

  3. 盘一盘 QuantLib 系列 2 - 生成日期表

    本篇是该系列的第二篇: 盘一盘 QuantLib 系列 1 - 日期和日历 上篇已经举例如何在日期 (old_date) 上加减一个期限得到一个新日期 (new_date),该日期没有经过调整可能是一 ...

  4. Powerbi实战--常用新建表代码(单位切换,日期表)

    单位切换 #Model_Unit = DATATABLE("单位名称",STRING,"OrderBy_unit",INTEGER,"Value&qu ...

  5. PowerBI 应用时间智能(生成日期表)

    简介 Power BI Desktop -是一款由微软发布的自助式商业智能工具,功能强大.易于使用.其中还可以通过微软云连多个数据源并且使用数据源来创建可视化表盘. 但是几乎所有的BI都需要展示如何随 ...

  6. 仅需6道题轻松掌握Python时间和日期处理 | Python技能树征题

    仅需6道题轻松掌握Python时间和日期处理 | Python技能树征题 0. 前言 1. 第 1 题:时间单位转换 2. 第 2 题:日期与时间运算 3. 第 3 题:查找指定日期的后一个周日的日期 ...

  7. 22.4.2_mysql自动生成日期表(按年份)

    1.应用场景 有时候,需要自动生成某一年的日期表(比如用于录入当年的法定节假日,或者其他需要生成一整年只含日期数据的空表,方便以后补充) 2.代码 例如:需要生成2008年的日期表 2.1. 前期准备 ...

  8. php 时间戳 星座,最精准最新十二星座日期表 时间表

    对于十二星座相信很多人都不陌生,但是如果说对于十二星座时间划分说到精准的时间,相信很少人能够准确的说出来,连自己的星座划分都没办法说出来,只知道自己的时间属于哪个星座,那么下面为大家揭晓下最精准最新十 ...

  9. PowerBI中的函数日期表

    在PowerBI中,日期表的问题是始终都无法绕过的一个问题,首先是微软默认的日期表月份显示如下: 可能这种形式我们自己看起来没啥的,但是要考虑做出来的可视化报表呈现的对象绝对不仅仅是自己,那么就需要我 ...

最新文章

  1. mysql keepalived低版本_Mysql+keepalived主主切换
  2. debian android环境搭建,Debian类系统环境变量的配置
  3. 通俗易懂的讲解区块链
  4. DataGridView的使用
  5. 交流信号叠加直流偏置_交流变频空调器室内机电路 (二)
  6. 【插件发布】JAVA微服务框架,Jeecg-P3-Demo 1.0.0 插件开源发布
  7. 《ANSYS 14热力学/电磁学/耦合场分析自学手册》——2.8 工具条
  8. java基础基本数据类型对象包装
  9. 禁用Alt + F4关闭窗体的一些常用方法
  10. “绿坝”最终会不了了之
  11. Windows下 DirectX SDK 配置检验
  12. AI--调用百度OCR文字识别API进行图片文字识别
  13. php ci hooks,CodeIgniter框架钩子机制实现方法【hooks类】
  14. 正则匹配某字符前的内容
  15. python读取word文档结构图_Word 有什么技巧,让你相见恨晚?
  16. Hive常用函数大全
  17. windows下的网络配置
  18. 微信小程序自带地图_小程序丨教你:如何打开小程序如何打开微信自带的地图(附源码)...
  19. C++中“非常量引用的初始值必须是左值”的处理方法
  20. 【数据结构】八大经典排序(两万字大总结)

热门文章

  1. Spring Boot 2.0选择HikariCP作为默认数据库连接池的五大理由
  2. java MDC_log4j MDC实现日志追踪
  3. 机械行业 偏计算机,院校篇丨机械类:985机械不如二本计算机?
  4. segformer 使用笔记
  5. zxing 源码笔记
  6. torch max 判断与筛选
  7. variables needed for gradient computation has been modified by an inplace operation
  8. python多进程共享内存
  9. Android: Execution failed for task ':app:processDebugResources' 异常解决
  10. gitignore完整使用方法