一個日期類型接口參數的構造思路


先說一下背景

app上有一個功能是查詢當前一周內產生的數據,對應的請求有2個必傳參數:startDate 和 endDate

其中 startDate 為當前一周的開始日期,如"周一 2019-12-02",endDate為當前一周的結束日期,如"周二 2019-12-08"

所以這次要做的就是構造這兩個參數

一個簡單的思考過程

1、要獲取到當前的日期

2、知道當前日期對應星期幾

3、根據今天的日期倒推出星期一是幾月幾號

4、根據周一是幾月幾號,再向未來延6天,就可以知道周日是幾月幾號

通過上述3步即可獲得“當前日期”所在周的 “周一對應幾月幾號,周日對應幾月幾號”

一個簡單的示意圖如下:

假如今天是:周四,12月5號,那么減3天,就是周一(4-3)

假如今天是:周二,12月3號,那么減1天,就是周一(2-1)

假如今天是:周一,12月2號,那么減0天,就是周一(1-0)

編寫python腳本

python中的datetime模塊可以獲取日期以及星期

# coding: utf-8
# author: hmk

import datetime

today = datetime.datetime.now()  # 獲取今天時間
print("今天的日期是:{}".format(today.strftime("%Y-%m-%d")))

t_week = today.weekday()
print("今天是星期:{}".format(t_week))

打印結果

 

 說明:在python中周一至周日分別對應0~6

所以當前日期減去當前星期幾對應的數值,就是周一的日期了,

例如 今天是星期4,在python中對應的數值為3,星期4往前倒3天就是星期1了,也就是(4-3)

所以需要構造一個變量,用來表示需要倒退的天數

對應代碼

# coding: utf-8
# author: hmk

import datetime

today = datetime.datetime.now()  # 獲取今天時間
print("今天的日期是:{}".format(today.strftime("%Y-%m-%d")))

t_week = today.weekday()
print("今天是星期:{}".format(t_week))
offset = datetime.timedelta(days=t_week) # 定義一個變量,表示需要倒退的天數
start = today-offset # 當前日期減去offset,表示周一對應的日期
end = start+datetime.timedelta(days=6) # 周一的日期加上6天,表示周日的日期
print(start.strftime("%Y-%m-%d")+"~"+end.strftime("%Y-%m-%d"))

打印結果

 

 

這樣就構造好 startDate 和 endDate了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM