python datetime 常用的幾種處理日期的方式
阿新 • • 發佈:2019-02-03
import datetime
#本週第一天和最後一天
date1 = datetime.datetime.now()
this_week_start_dt = str(date1-datetime.timedelta(days=date1.weekday())).split()[0]
this_week_end_dt = str(date1+datetime.timedelta(days=6-date1.weekday())).split()[0]
print this_week_start_dt,this_week_end_dt
#上個星期一和星期天的日期
last_week_start_dt = date1-datetime.timedelta (days=date1.weekday()+7)
last_week_end_dt = date1-datetime.timedelta(days=date1.weekday()+1)
#本月一號和最後一天的日期
y=date1.year
m = date1.month
month_start_dt = datetime.date(y,m,1)
if m == 12:
month_end_dt = datetime.date(y+1,1,1) - datetime.timedelta(days=1)
print month_end_dt
else:
month_end_dt = datetime.date (y,m+1,1) - datetime.timedelta(days=1)
print month_end_dt
#上個月的第一天和最後一天
if m==1: #如果是1月
start_date=datetime.date(y-1,12,1)
else:
start_date=datetime.date(y,m-1,1)
end_date=datetime.date(y,m,1) - datetime.timedelta(days=1)
#這個季度的第一天和最後一天的日期
y=date1.year
month = date1.month
if month in (1,2,3):
quarter_start_dt = datetime.date(y,1,1)
quarter_end_dt = datetime.date(y,4,1) - datetime.timedelta(days=1)
elif month in (4,5,6):
quarter_start_dt = datetime.date(y,4,1)
quarter_end_dt = datetime.date(y,7,1) - datetime.timedelta(days=1)
elif month in (7,8,9):
quarter_start_dt = datetime.date(y,7,1)
quarter_end_dt = datetime.date(y,10,1) - datetime.timedelta(days=1)
else:
quarter_start_dt = datetime.date(y,10,1)
quarter_end_dt = datetime.date(y+1,1,1) - datetime.timedelta(days=1)
#本季度天數 及 本季度剩餘的天數
# quarter_days = (quarter_end_dt - quarter_start_dt).days + 1
# quarter_rem = (quarter_end_dt - date1).days