• python获取指定日期和转换的整理


    一、代码

    import datetime
    import calendar
    from chinese_calendar import is_workday
    import pandas as pd
    
    
    # 判断是否为星期1
    def is_monday():
        today = datetime.datetime.now().weekday()
        if today == 0:
            return True
    
    
    # 判断是否为星期2
    def is_tuesday():
        today = datetime.datetime.now().weekday()
        if today == 1:
            return True
    
    
    # 判断是否为星期3
    def is_wednesday():
        today = datetime.datetime.now().weekday()
        if today == 2:
            return True
    
    
    # 判断是否为星期4
    def is_thursday():
        today = datetime.datetime.now().weekday()
        if today == 3:
            return True
    
    
    # 判断是否为星期5
    def is_friday():
        today = datetime.datetime.now().weekday()
        if today == 4:
            return True
    
    
    # 判断是否为星期6
    def is_saturday():
        today = datetime.datetime.now().weekday()
        if today == 5:
            return True
    
    
    # 判断是否为星期日
    def is_sunday():
        today = datetime.datetime.now().weekday()
        if today == 6:
            return True
    
    
    # 判断上几工作日
    def is_word_day(date_num):
        day = datetime.datetime.now() + datetime.timedelta(days=date_num)
        res = is_workday(day)
        if res:
            return day.strftime("%Y-%m-%d")
        else:
            date_num += 1
            is_word_day(date_num)
    
    
    # 上一自然日
    def up_day():
        return (datetime.datetime.now() + datetime.timedelta(days=-1)).strftime("%Y-%m-%d")
    
    
    # 获取指定前后天
    def get_day(date_num):
        day = datetime.datetime.now() + datetime.timedelta(days=date_num)
        return day.day
    
    
    # excel中5位日期数字的转换
    def turn_time(delta_days):
        """
        delta_days:就是那个五位数
        """
        # 上一步得到的就是一个pandas的时间戳形式,然后我们转换成合适的时间格式就好了
        # Timestamp('1899-12-30 00:00:00')
        real_time = pd.to_datetime('1899-12-30') + pd.Timedelta(str(delta_days) + 'D')  # eg:'44701D'
        return real_time.strftime("%Y/%m/%d")
    
    
    # 获取上个月末
    def before_month_last_day():
        today = datetime.datetime.now()
        first = datetime.date(day=1, month=today.month, year=today.year)
        last_day = first - datetime.timedelta(days=1)
        return last_day.strftime("%Y%m%d")
    
    
    # 获取上上工作日
    def get_2up_work(up_date=1, is_work=0):
        '''
        :param up_date:可以用来调整上几个工作日
        :param is_work:
        :return:
        '''
        day = datetime.datetime.now() + datetime.timedelta(days=-up_date)
        res = is_workday(day)
        if res:
            is_work += 1
            up_date += 1
            if is_work == 2:
                return day.strftime("%Y%m%d")
            return get_2up_work(up_date, is_work)
        else:
            up_date += 1
            return get_2up_work(up_date, is_work)
    
    
    # 获取上个月初
    def before_month_fristday():
        today = datetime.datetime.now()
        first = datetime.date(day=1, month=today.month - 1, year=today.year)
        return first.strftime("%Y%m%d")
    
    
    # 获取上个星期几
    def get_up_day(day=1):
        '''
        :param day: 获取上个星期几,1-7
        :return:
        '''
        cal_dict = {1: calendar.MONDAY, 2: calendar.TUESDAY, 3: calendar.WEDNESDAY, 4: calendar.THURSDAY,
                    5: calendar.FRIDAY, 6: calendar.SATURDAY, 7: calendar.SUNDAY}
        date = datetime.datetime.now()
        oneday = datetime.timedelta(days=1)
        while date.weekday() != cal_dict.get(day, calendar.MONDAY):
            date -= oneday
        return date.strftime("%Y%m%d")
  • 相关阅读:
    hack games
    Metasploit 使用简介
    Back Track5学习笔记
    Metasploit没有db_autopwn命令的解决办法
    BT5 set_config各个选项的配置
    c# 截屏
    c#图像计算知识
    游戏代码
    Google Protocol Buffers (一个客户端与服务器协议生成工具)
    WinPcap抓取数据包
  • 原文地址:https://www.cnblogs.com/angelyan/p/13734637.html
Copyright © 2020-2023  润新知