|
|
#!/usr/bin/env python
|
|
|
import datetime
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
# 获取过去几天的日期
|
|
|
def get_last_days(delta):
|
|
|
days = []
|
|
|
now = datetime.datetime.now()
|
|
|
for i in range(1, delta):
|
|
|
last_date = now + datetime.timedelta(days=-i)
|
|
|
last_date_str = last_date.strftime('%Y-%m-%d') # 格式化输出
|
|
|
days.append(last_date_str)
|
|
|
days.sort()
|
|
|
return days
|
|
|
|
|
|
def time_diff(t1):
|
|
|
# 将字符串转换为 datetime 对象
|
|
|
t1 = datetime.strptime(t1, "%Y-%m-%d %H:%M:%S")
|
|
|
|
|
|
# 计算当前时间与 t1 的差值
|
|
|
diff = datetime.now() - t1
|
|
|
|
|
|
# 计算天数、小时数和分钟数
|
|
|
days = diff.days
|
|
|
hours, remainder = divmod(diff.seconds, 3600)
|
|
|
minutes, seconds = divmod(remainder, 60)
|
|
|
|
|
|
# 返回格式化的时间差
|
|
|
return f"{days}:{hours}:{minutes}"
|
|
|
|
|
|
class DateNext(object):
|
|
|
|
|
|
def get_next_week_date(self, weekday):
|
|
|
# 获取下周几的日期
|
|
|
# weekday取值如下:
|
|
|
# (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)
|
|
|
|
|
|
today = datetime.date.today()
|
|
|
onday = datetime.timedelta(days=1)
|
|
|
# m1 = calendar.MONDAY
|
|
|
while today.weekday() != weekday:
|
|
|
today += onday
|
|
|
|
|
|
# logging.info(datetime.date(today.year, today.month, today.day))
|
|
|
nextWeekDay = today.strftime('%Y-%m-%d')
|
|
|
return nextWeekDay
|
|
|
|
|
|
def get_next_month_date(self, day_of_the_month):
|
|
|
# 获取下个月几号的日期
|
|
|
today_date = datetime.datetime.today()
|
|
|
today = today_date.day
|
|
|
if today == day_of_the_month:
|
|
|
return today_date.strftime('%Y-%m-%d')
|
|
|
if today < day_of_the_month:
|
|
|
return datetime.date(today_date.year, today_date.month, day_of_the_month).strftime('%Y-%m-%d')
|
|
|
if today > day_of_the_month:
|
|
|
if today_date.month == 12:
|
|
|
return datetime.date(today_date.year+1, 1, day_of_the_month).strftime('%Y-%m-%d')
|
|
|
return datetime.date(today_date.year, today_date.month+1, day_of_the_month).strftime('%Y-%m-%d') |