首页 > 编程语言 > 详细

用python获取表格中的节假日起始日期

时间:2019-12-27 14:38:23      阅读:88      评论:0      收藏:0      [点我收藏+]

开发中遇到关于日期(节假日)的问题。具体情况:业务每天都会在系统中下载10张表,下载规则是今天下昨天的数据,意思就是下载时的查询条件日期那一栏应该写昨天的日期,但是有一个小问题,遇到周末就不能下昨天的数据了,会造成数据不准确,而是要下载上周六的数据,还有遇到节假日也是一样的,要从节假日开始那一天下载。栗子:今天是10月8号,那么今天就应该下载10月1号的数据。大概就是这么个意思。代码实现:首先,需要维护一个节假日表(或者节假日参数),这里我是先获取到昨天的日期,然后在进行判断。具体如下:

import pandas as pd
import datetime
import time

path = r"C:\Users\Desktop\holidays.xlsx"


def read_date(path):
    # 读取日期列
    data = pd.DataFrame(pd.read_excel(path))
    raw_date = []
    for i in data[‘日期‘]:
        raw_date.append(i)

    return raw_date


def get_date(path):
    ‘‘‘
    获取节假日的起始日期
    :param path: 节假日表
    :return: 节假日开始日期
    ‘‘‘
    # 昨天的日期
    # yesterday = (datetime.datetime.now() + datetime.timedelta(days=-1)).strftime(‘%Y/%m/%d‘)
    yesterday = ‘2019/10/07‘
    while True:
        timer = datetime.date.fromtimestamp(time.mktime(time.strptime(yesterday, ‘%Y/%m/%d‘)))
        # 获取日期列表
        date_list = read_date(path)
        if yesterday in date_list:
            # 日期减一天
            yesterday = (timer + datetime.timedelta(days=-1)).strftime(‘%Y/%m/%d‘)
        else:
            # 日期加一天
            yesterday = (timer + datetime.timedelta(days=1)).strftime(‘%Y/%m/%d‘)
            break
    print(yesterday)


get_date(path)

:我的日期表格式如下

技术分享图片

用python获取表格中的节假日起始日期

原文:https://www.cnblogs.com/rongge95500/p/12107108.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!