# Author renyupeng # coding=utf-8 # @Time : 2021/9/15 11:06 上午 # @Site : # @File : Utils.py # @Software: PyCharm # @contact: renyupeng@c-top.com.cn import argparse import datetime from datetime import timedelta, date from datetime import datetime as dt import calendar class Utils: """ 参数获取工具类 """ @staticmethod def get_args(): parser = argparse.ArgumentParser(description='') parser.add_argument('-start_time', type=str, default=None, help="TX_DT") parser.add_argument('-end_time', type=str, default=None, help="TX_DT") args = parser.parse_args() start_time = args.start_time end_time = args.end_time return start_time, end_time @staticmethod def get_task_args(): parser = argparse.ArgumentParser(description='') parser.add_argument('-date_time', type=str, default=None, help="TX_DT") parser.add_argument('-day_count', type=int, default=None, help="DAY") args = parser.parse_args() date_time = args.date_time day_count = args.day_count return date_time, day_count @staticmethod def get_live_args(): parser = argparse.ArgumentParser(description='') parser.add_argument('-date_time', type=str, default=None, help="TX_DT") args = parser.parse_args() date_time = args.date_time return date_time @staticmethod def get_month_range(start_date=None): if start_date is None: start_date = date.today().replace(day=1) _, days_in_month = calendar.monthrange(start_date.year, start_date.month) if date.today().day == 1: end_date = start_date else: end_date = start_date + timedelta(days=days_in_month) return start_date, end_date @staticmethod def get_days(): yesterday = (datetime.date.today() + datetime.timedelta(-1)).strftime("%Y-%m-%d") ll = [] day = timedelta(days=1) startday, endday = Utils.get_month_range() if startday == endday: mon = (datetime.date.today() + datetime.timedelta(-1)).strftime("%m") startday = """{year}-{month}-01""".format(year=startday.year, month=mon) startday = datetime.datetime.date(dt.strptime(startday, '%Y-%m-%d')) print(startday) else: endday = endday while startday < endday: ll.append(str(startday)) startday += day lt = ll.index(yesterday) return lt if __name__ == '__main__': print(Utils.get_days())