zoukankan      html  css  js  c++  java
  • 用python获取表格中的节假日起始日期

    开发中遇到关于日期(节假日)的问题。具体情况:业务每天都会在系统中下载10张表,下载规则是今天下昨天的数据,意思就是下载时的查询条件日期那一栏应该写昨天的日期,但是有一个小问题,遇到周末就不能下昨天的数据了,会造成数据不准确,而是要下载上周六的数据,还有遇到节假日也是一样的,要从节假日开始那一天下载。

    今天是10月8号,那么今天就应该下载10月1号的数据。大概就是这么个意思。代码实现:首先,需要维护一个节假日表(或者节假日参数),这里我是先获取到昨天的日期,然后在进行判断。具体如下:

    import pandas as pd
    import datetime
    import time
    
    path = r"C:UsersDesktopholidays.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)

    :我的日期表格式如下

  • 相关阅读:
    想用Nginx代理一切?行!
    [SuProxy]Ngnix+Lua 实现SSH2,LDAP,ORACLE,SQLSERVER等TCP/IP协议分析,劫持,代理,会话及负载
    hive分区表详细介绍
    hive 中自定义UDF函数和自定义UDTF函数
    yarn工作原理
    HDFS小文件问题
    HDFS读写流程
    利用 canvas 实现签名效果
    idea里面自带的翻译插件
    idea的set,get插件
  • 原文地址:https://www.cnblogs.com/rongge95500/p/12107108.html
Copyright © 2011-2022 走看看