python實現 根據給定的日期間隔列印日期列表

2021-10-02 14:00:17 字數 2668 閱讀 2292

工作中,遇到查資料庫統計,需要得到每個月的月初月末日期,指定日期間隔內的每天日期列表,或者是某個日期前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...