Utils.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. # Author renyupeng
  2. # coding=utf-8
  3. # @Time : 2021/9/15 11:06 上午
  4. # @Site :
  5. # @File : Utils.py
  6. # @Software: PyCharm
  7. # @contact: renyupeng@c-top.com.cn
  8. import argparse
  9. import datetime
  10. from datetime import timedelta, date
  11. from datetime import datetime as dt
  12. import calendar
  13. class Utils:
  14. """
  15. 参数获取工具类
  16. """
  17. @staticmethod
  18. def get_args():
  19. parser = argparse.ArgumentParser(description='')
  20. parser.add_argument('-start_time', type=str, default=None, help="TX_DT")
  21. parser.add_argument('-end_time', type=str, default=None, help="TX_DT")
  22. args = parser.parse_args()
  23. start_time = args.start_time
  24. end_time = args.end_time
  25. return start_time, end_time
  26. @staticmethod
  27. def get_task_args():
  28. parser = argparse.ArgumentParser(description='')
  29. parser.add_argument('-date_time', type=str, default=None, help="TX_DT")
  30. parser.add_argument('-day_count', type=int, default=None, help="DAY")
  31. args = parser.parse_args()
  32. date_time = args.date_time
  33. day_count = args.day_count
  34. return date_time, day_count
  35. @staticmethod
  36. def get_live_args():
  37. parser = argparse.ArgumentParser(description='')
  38. parser.add_argument('-date_time', type=str, default=None, help="TX_DT")
  39. args = parser.parse_args()
  40. date_time = args.date_time
  41. return date_time
  42. @staticmethod
  43. def get_month_range(start_date=None):
  44. if start_date is None:
  45. start_date = date.today().replace(day=1)
  46. _, days_in_month = calendar.monthrange(start_date.year, start_date.month)
  47. if date.today().day == 1:
  48. end_date = start_date
  49. else:
  50. end_date = start_date + timedelta(days=days_in_month)
  51. return start_date, end_date
  52. @staticmethod
  53. def get_days():
  54. yesterday = (datetime.date.today() + datetime.timedelta(-1)).strftime("%Y-%m-%d")
  55. ll = []
  56. day = timedelta(days=1)
  57. startday, endday = Utils.get_month_range()
  58. if startday == endday:
  59. mon = (datetime.date.today() + datetime.timedelta(-1)).strftime("%m")
  60. startday = """{year}-{month}-01""".format(year=startday.year, month=mon)
  61. startday = datetime.datetime.date(dt.strptime(startday, '%Y-%m-%d'))
  62. print(startday)
  63. else:
  64. endday = endday
  65. while startday < endday:
  66. ll.append(str(startday))
  67. startday += day
  68. lt = ll.index(yesterday)
  69. return lt
  70. if __name__ == '__main__':
  71. print(Utils.get_days())