如何在Python中從日期中減去一天?
介紹
擁有一個能夠修改日期和時間的模組至關重要,因為眾所周知,它們被用於需要跟蹤日期和時間的應用程式中。Python中的DateTime模組處理日期和時間(Python日期/時間教程)。Python自帶一個內建的datetime模組。
在進行任何資料修改之前,需要安裝兩個新的庫。
- 使用arrow庫可以快速檢索日期和時間。
- Pandas庫允許訪問和使用DataFrame。
轉到IDE控制檯安裝這些庫。在($)命令提示符下執行以下程式碼。本例中使用的終端的命令提示符用美元符號($)表示。您終端上的提示符可能不同。
使用的方法
time − 顯示時間,獨立於任何特定日期,屬性包括小時、分鐘、秒、微秒和tzinfo。
timedelta − 用於操作日期。
date − 根據格里高利曆顯示日期,屬性包括年份、月份和日期。
tzinfo − 提供有關時區的資訊。
datetime − 是日期和時間的集合,屬性包括年份、月份、日期、小時、分鐘、秒、微秒和tzinfo。
語法
class datetime.timedelta(days=10, month ,hour, minute, second, microsecond, tzinfo) Returns: Date
注意 − 如果我們沒有指定,預設情況下它將整數作為日期。
演算法
初始化一個字串,並使用today方法檢索當前日期,並使用split方法將其分割成列表。
宣告一個新的變數,它呼叫datetime.date()並接受三個引數:當前年份、當前月份和日期。
宣告一個變數,它使用timedelta並傳遞一個整數,表示要從原始日期中減去的日期數。
返回datetime.date()變數和timedelta變數的差值。
方法1:使用datetime.timedelta()
示例
此方法將當前日期作為字串檢索並將其拆分為列表。然後,配置當前日期(發薪日),並從中減去十 (10) 天 (datetime.timedelta(10)) 以返回新日期。
#importing necessary functions import datetime from datetime import date import pandas as pd #storing the value of date.today in a variable today today = str(date.today()).split('-') #Declares payday which calls datetime.date() and takes three (3) integer arguments: current year (int(get_today[0])), current month (int(get_today[1])) payday= datetime.date(int(today[0]), int(today[1]), 25) #Declares chqday which uses timedelta and passes an integer, (10) chqday = datetime.timedelta(10) #Declares n_payday which subtracts payday from chqday n_payday= payday - chqday #printing the payday print("Payday =",payday)
輸出
Payday = 2022-11-25
程式碼解釋
宣告today,它檢索當前日期 (yyyy-mm-dd),並根據連字元 (split('-')) 拆分日期字串。這將當前日期作為字串列表 ['2022', '05', '27'] 返回。宣告payday,它呼叫datetime.date()並接受三個 (3) 個整數引數:當前年份 (int(get_today[0]))、當前月份 (int(get_today[1])) 和日期 (25)。宣告chqday,它使用timedelta並傳遞一個整數 (10),表示要從原始日期 (25) 中減去的日期數。宣告n_payday,它從chqday中減去payday。最後,將n_paydy的輸出傳送到終端。
方法2:使用Pandas減去日期列
示例
如果您想確定兩個日期之間的差值,但不想建立一個新日期怎麼辦?在此示例中,從一個日期中減去另一個日期,結果以天數差的形式輸出。
#importing important functions import datetime from datetime import date import pandas as pd #outcome of dataframe is stored in df df = pd.DataFrame(columns=['hired', 'fired']) #two rows to the DataFrame df and save the data to the relevant variable (df.hired or df.fired) df.hired = ['2022-09-07', '2022-10-29'] df.fired = ['2021-09-07', '2022-04-29'] #Datetime object is created from these two lines and stored to the relevant variable stated above df.hired = pd.to_datetime(df.hired) df.fired = pd.to_datetime(df.fired) #storing the difference of df.fired and df.hired in diff. diff = (df.fired - df.hired) #printing the diff print(diff)
輸出
0 -365 days 1 -183 days dtype: timedelta64[ns]
程式碼解釋
首先,生成一個包含“招聘”和“解僱”列的DataFrame。結果儲存到df中。接下來的兩行向DataFrame df新增兩行,並將資料儲存到上面提到的相關變數 (df.hired 或 df.fired) 中。然後,從這兩行建立一個Datetime物件,並將其儲存到上面提到的相關變數中。它減去這兩個日期並將結果儲存到diff中。
結論
datetime是日期和時間的集合,其屬性包括年份、月份、日期、小時、分鐘、秒、微秒和tzinfo.timedelta()用於操作日期。計算timedelta和datetime.date變數之間的差值以返回所需的輸出,即從Python日期中減去一天。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP