【Python】日期加減(獲取前N天/后N天日期)


 

import datetime


class DateTool:
    @staticmethod
    def offset(date_format, offset_type, count, data=None):
        """
        日期偏移(前N天、后N天)
        @param date_format: 格式(如:%Y-%m-%d %H:%M:%S)
        @param offset_type: 偏移類型(Q-向前偏移 即前N天,H-向后偏移 即后N天)
        @param count: 偏移天數
        @param data: 偏移基准日期(如:2020-11-14 19:48:51) 若為None則當前日期
        @return: 偏移后的日期
        """
        # 時間加減
        # 獲取當前日期
        if data is None:
            data = datetime.datetime.now().strftime(date_format)
        # 將時間字符串轉換為 datetime 格式的時間
        today = datetime.datetime.strptime(data, date_format)
        # 計算偏移量
        if offset_type == 'Q':
            offset = datetime.timedelta(days=-count)
        elif offset_type == 'H':
            offset = datetime.timedelta(days=+count)
        else:
            print(f'偏移類型錯誤,預期:“Q”或“H”,實際:{offset_type}')
        # 獲取修改后的時間並格式化
        re_date = (today + offset).strftime(date_format)
        return re_date


if __name__ == '__main__':
    print(DateTool.offset('%Y%m%d', 'Q', 3))  # 20210823  (備注:今天是8.26日)
    print(DateTool.offset('%Y%m%d', 'H', 3, '20210829'))  # 20210901

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM