importdatetimeimportcalendarfrom chinese_calendar importis_workdayimportpandas as pd#判断是否为星期1
defis_monday():
today=datetime.datetime.now().weekday()if today ==0:returnTrue#判断是否为星期2
defis_tuesday():
today=datetime.datetime.now().weekday()if today == 1:returnTrue#判断是否为星期3
defis_wednesday():
today=datetime.datetime.now().weekday()if today == 2:returnTrue#判断是否为星期4
defis_thursday():
today=datetime.datetime.now().weekday()if today == 3:returnTrue#判断是否为星期5
defis_friday():
today=datetime.datetime.now().weekday()if today == 4:returnTrue#判断是否为星期6
defis_saturday():
today=datetime.datetime.now().weekday()if today == 5:returnTrue#判断是否为星期日
defis_sunday():
today=datetime.datetime.now().weekday()if today == 6:returnTrue#判断上几工作日
defis_word_day(date_num):
day= datetime.datetime.now() + datetime.timedelta(days=date_num)
res=is_workday(day)ifres:return day.strftime("%Y-%m-%d")else:
date_num+= 1is_word_day(date_num)#上一自然日
defup_day():return (datetime.datetime.now() + datetime.timedelta(days=-1)).strftime("%Y-%m-%d")#获取指定前后天
defget_day(date_num):
day= datetime.datetime.now() + datetime.timedelta(days=date_num)returnday.day#excel中5位日期数字的转换
defturn_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")#获取上个月末
defbefore_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)ifres:
is_work+= 1up_date+= 1
if is_work == 2:return day.strftime("%Y%m%d")returnget_2up_work(up_date, is_work)else:
up_date+= 1
returnget_2up_work(up_date, is_work)#获取上个月初
defbefore_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-=onedayreturn date.strftime("%Y%m%d")