工作中,遇到查資料庫統計,需要得到每個月的月初月末日期,指定日期間隔內的每天日期列表,或者是某個日期前n天的日期列表。
import datetime
import calendar
# 指定日期間隔內每個月的月初和月尾的日期
defget_time_range_list
(startdate, enddate)
:"""
獲取指定時間期間內每個月月初和月末日期引數列表
:param startdate: 起始日期 --> str
:param enddate: 結束日期 --> str
:return: date_range_list -->list形如 [('2020-02-01', '2020-02-29'), ... , ('2021-01-01', '2021-01-31')]
"""date_range_list =
startdate = datetime.datetime.strptime(startdate,
'%y-%m-%d'
) enddate = datetime.datetime.strptime(enddate,
'%y-%m-%d'
)while1:
next_month = startdate + datetime.timedelta(days=calendar.monthrange(startdate.year, startdate.month)[1
])month_end = next_month - datetime.timedelta(days=1)
if month_end < enddate:
(datetime.datetime.strftime(startdate,
'%y-%m-%d'),
datetime.datetime.strftime(month_end,
'%y-%m-%d'))
) startdate = next_month
else
:return date_range_list
# 獲取指定日期間隔內的日期列表
defcreate_assist_date
(datestart=
none
, dateend=
none):
""" 獲取指定日期間隔內的日期列表
:param datestart: 開始日期 ---> str
:param dateend: 結束日期 ---> str
:return: 日期列表 ['2020-01-25', '2020-01-26', '2020-01-27', '2020-01-28',...]
"""if datestart is
none
: datestart =
'2019-12-28'
if dateend is
none
: dateend = datetime.datetime.now(
).strftime(
'%y-%m-%d'
)# 轉為日期格式
datestart = datetime.datetime.strptime(datestart,
'%y-%m-%d'
) dateend = datetime.datetime.strptime(dateend,
'%y-%m-%d'
) date_list =
'%y-%m-%d'))
while datestart < dateend:
# 日期疊加一天
datestart += datetime.timedelta(days=+1
)# 日期轉字串存入列表
'%y-%m-%d'))
return date_list
# 獲取今天前n天的日期列表(不包含今天)
defget_nday_list
(enddate=
none
, n=7)
:"""
獲取今天前n天的日期列表(不包含今天)
:param enddate: 截止日期 ---> str
:param n: 前n天的n值
:return: ['2020-02-01', '2020-02-02', '2020-02-03', '2020-02-04']
"""before_n_days_list =
if enddate is
none
: enddate = datetime.date.today(
)else
: enddate = datetime.datetime.strptime(enddate,
'%y-%m-%d'
) enddate = datetime.date(year=enddate.year, month=enddate.month, day=enddate.day)
for i in
range(1
, n +1)
[::-
1]:str
(enddate - datetime.timedelta(days=i)))
return before_n_days_list
根據給定日期生成當月日期列表sql語句
下面是本人在開發過程中遇到的乙個問題,需要根據給定的日期 生成當月的日期列表,用於生成當月的報表資料,為了提高系統效率,索性將生成日期列表的操作放在了sql中完成,生成方法借助了mysql資料庫自帶的一張表mysql.help.topic,原因是該錶的記錄數足夠我們用來生成列表,但是我並沒有使用my...
如何實現給定日期的若干天以後的日期
這幾天突然有很多的人問這樣的問題,就是如何在php中實現在vb中的dateadd的函式,呵呵!這個可是問個正著。本來這個問題是 豆腐 去 華為 應聘的時候的乙個考試題,不過當時是用c 實現的。沒有想到這樣的大公司,竟 然用這樣的小兒科來考試 後來我沒有去,這兩天 應 的 運氣,用php重新 寫了這個...
實現給定某日期,判斷是星期幾
需注意的是 1是週日 實現給定某日期,判斷是星期幾 public static string getweekday long longdate catch parseexception e string res sdw.format d log.i tag,return res res return...