python日期对照表_2020年日期表-python实现-程序员宅基地

技术标签: python日期对照表  

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)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39646021/article/details/110550260

智能推荐

PHP-生成缩略图和添加水印图-学习笔记-程序员宅基地

文章浏览阅读82次。1.开始 在网站上传图片过程,经常用到缩略图功能。这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图。2.如何生成缩略图 生成缩略图,关键的是如何计算缩放比率。 这里,我根据图片等比缩放,宽高的几种常见变化,得出一个算缩放比率算法是,使用新图(即缩略图)的宽高,分别除以原图的宽高,看哪个值大,就取它作为缩放比率:...

dyld: Library not loaded: @rpath/libswiftCore.dylib ... Reason: image not found 解决-程序员宅基地

文章浏览阅读2.7k次。在室友Xcode继承一些framework时,爆出了如下错误:dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/containers/Bundle/Application/1761A6FE-9D6B-45F7-9F9F-922C94BF54A3/demo.app/Framewor..._library not loaded: @rpath/libswiftcore.dylib

linux gvim 快捷键tab,Linux中Vim的常用命令及快捷键-程序员宅基地

文章浏览阅读356次。光标控制命令h或^h向左移一个字符j或^j或^n向下移一行k或^p向上移一行l或空格向右移一个字符G移到文件的最后一行nG移到文件的第n行w..._gvim itab

umi4 项目使用umi-plugin-keep-alive缓存页面(react-activation)-程序员宅基地

文章浏览阅读1k次,点赞12次,收藏10次。按 name 卸载缓存状态下的 节点,name 可选类型为 String 或 RegExp,注意,仅卸载命中 的第一层内容,不会卸载 中嵌套的、未命中的。按 name 刷新缓存状态下的 节点,name 可选类型为 String 或 RegExp,注意,仅刷新命中 的第一层内容,不会刷新 中嵌套的、未命中的。按 name 卸载缓存状态下的 节点,name 可选类型为 String 或 RegExp,将卸载命中 的所有内容,包括 中嵌套的所有。true: 卸载时缓存。获取所有缓存中的节点。_umi-plugin-keep-alive

memory compiler使用流程-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏25次。用了几天的memory compiler,搞清楚了它的使用流程。因为这个软件是不开源的,而且手册又很长,没有快速阅读指南,所以就花了挺多时间学习手册细节,想把其中比较主要的流程记录下来,供大家学习参考。它是一个用来综合一些IP核的软件,它里面各种各样的memory compiler,可以根据自己的选择选中一个,设置好参数之后就能生成想要的参数的memory。 因为每个memory compiler可能工艺不一样,端口数不一样,所以里面有手册告诉你这些细节的。(手册很多,每个手册几百页上下)1、首先就是要安装_memory compiler

Android 读取csv格式数据文件-程序员宅基地

文章浏览阅读5.6k次,点赞5次,收藏16次。前言什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在主流数据格式是采用的JSON,但是另一种就是.csv格式的数据,这种数据通常由数据库直接提供,进行读取。下面来看看简单的使用吧正文首先还是先来创建一个项目,名为ReadCSV准备.csv格式的文件,点击和风APILocationList下载ZIP,保存到本地,然后解压,这个时候在你的项目文件中新建_android 读取csv

随便推点

缓存数据库的意义、作用与种类详解-程序员宅基地

文章浏览阅读449次,点赞7次,收藏7次。Redis、Memcached等常见的缓存数据库,以及它们各自的特点和优势,使得开发人员可以根据应用场景选择最适合的解决方案。通过合理地配置和使用缓存数据库,可以有效地改善应用程序的性能,降低数据库负载,为用户提供更流畅的体验。缓存数据库允许应用程序在需要数据时,首先从缓存中查询数据,如果数据存在,则可以避免直接访问主数据库,从而显著提高数据访问速度。主数据库通常面临大量读写请求,而缓存数据库可以分担部分读请求,减轻主数据库的负载,提高其稳定性和可靠性。缓存数据库可以作为主数据库的备份,以防止数据丢失。

手把手教你安装VSCode(附带图解步骤)_vscode安装包-程序员宅基地

文章浏览阅读3.3w次,点赞38次,收藏158次。前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互[1]。它从网页制作演变而来,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web1.0时代的产物,,用户使用网站的行为也以浏览为主。随着互联网技术的发展和HTML5、CSS3的应用,现代网页更加美观,交互效果显著,功能更加强大。[2]..._vscode安装包

Linux下jar包的运行、查看、终止_linux查看jar包是否运行-程序员宅基地

Linux下使用java -jar命令运行jar包,可通过ctrl + c或关闭窗口停止程序。可以使用pid文件记录jar包的运行进程,方便终止。通过编写启停脚本,可以方便地终止jar包的运行。

英语基本语法_英语基础语法-程序员宅基地

文章浏览阅读1.4w次,点赞8次,收藏40次。1. 名词   名词可以分为专有名词(Proper Nouns)和普通名词 (Common Nouns),专有名词是某个(些)人,地方,机构等专有的名称,如Beijing,China等。普通名词是一类人或东西或是一个抽象概念的名词,如: book,sadness等。普通名词又可分为下面四类:  1)个体名词(Individual Nouns):表示某类人或东西中的个体,如:gun。  2)集体..._英语基础语法

busybox构建根文件系统_busybox mount-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏14次。rootfs有两种格式:nfs方式启动的文件夹形式的rootfs和用来烧录的镜像形式的rootfs。一、busybox移植1、busybox下载busybox是一..._busybox mount

sass-loader版本过高_sass loader-程序员宅基地

文章浏览阅读8.6k次,点赞11次,收藏20次。今天在学习狂神的vue实战上手的时候运行项目就死了,配置了半天终于好了第一个错误:Module build failed: TypeError: loaderContext.getResolve is not a functionsass-loader版本太高 解决:(1和2选一个)修改配置文件,重新安装//1.修改sass-loader的版本为^7.3.1//2.重新安装配置环境npm install卸载当前,重新下载// 卸载当前版本npm uninstall sass_sass loader