使用python實現將秒轉化為天時分

2022-09-10 06:24:11 字數 2342 閱讀 5977

在計算時間差的時候,比較容易得到timedelta這樣的格式

比如:

>>> import datetime

>>> datetime.datetime.now()-datetime.datetime(2021,1,1)

datetime.timedelta(days=150, seconds=40790, microseconds=833309)

>>> a = datetime.datetime.now()-datetime.datetime(2021,1,1)

>>> a

datetime.timedelta(days=150, seconds=40806, microseconds=749774)

>>> str(a)

'150 days, 11:20:06.749774'

>>> a.days

150>>> a.seconds

40806

>>>

這裡如果僅僅是輸出天數,就很容易得到,但是具體一點的資訊顯示的不是很友好

因此可以先利用函式將其全部轉化為秒,然後再計算

>>> (datetime.datetime.now()-datetime.datetime(2021,1,1)).total_seconds()

13000936.085446

然後利用下面的函式就能轉化為具體花費的多少時間

def seconds_to_dhms(seconds):

def _days(day):

return "{} days, ".format(day) if day > 1 else "{} day, ".format(day)

def _hours(hour):

return "{} hours, ".format(hour) if hour > 1 else "{} hour, ".format(hour)

def _minutes(minute):

return "{} minutes and ".format(minute) if minute > 1 else "{} minute and ".format(minute)

def _seconds(second):

return "{} seconds".format(second) if second > 1 else "{} second".format(second)

days = seconds // (3600 * 24)

hours = (seconds // 3600) % 24

minutes = (seconds // 60) % 60

seconds = seconds % 60

if days > 0 :

return _days(days)+_hours(hours)+_minutes(minutes)+_seconds(seconds)

if hours > 0 :

return _hours(hours)+_minutes(minutes)+_seconds(seconds)

if minutes > 0 :

return _minutes(minutes)+_seconds(seconds)

return _seconds(seconds)

舉個例子:

> seconds_to_dhms(a)

'1 day, 0 hour, 1 minute and 2 seconds'

>>> a = 24*60*60*45 + 60*13+59

>>> seconds_to_dhms(a)

'45 days, 0 hour, 13 minutes and 59 seconds'

>>> a = 24*60*60*45 + 60*13+59 +60*34

>>> seconds_to_dhms(a)

'45 days, 0 hour, 47 minutes and 59 seconds'

>>> a = 24*60*60*45 + 60*13+59 +60*60*34

>>> seconds_to_dhms(a)

'46 days, 10 hours, 13 minutes and 59 seconds'

>>> a = 24*60*60*45 + 60*13+59 +60*60*14

>>> seconds_to_dhms(a)

'45 days, 14 hours, 13 minutes and 59 seconds'

這樣單複數都有了,如果是中文顯示,就更簡單一點了,直接在最後格式化輸出就好了,不用再定義裡面的四個小函式了

C語言簡單實現 將C注釋轉化為C 注釋

c語言簡單實現 將c注釋轉化為c 注釋 我們首先考慮一下都會出現什麼情況 總結下來就是如下圖 因此我們需要封裝三個函式。測試部分 test.c 如下 include commentconvert.h void test file pfout pfout fopen output.c w if pfo...

php轉化為秒,php將秒轉換為小時 分鐘 秒

我需要將秒轉換為 小時 分鐘 秒 例如 685 轉換為 00 11 25 我怎樣才能做到這一點?第一種方法 你可以使用這個gmdate 功能 echo gmdate h i s 685 第二種方法 format time function format time t,f t seconds,f se...

python中時間日期相減並轉化為秒

python在時間日期轉化時候怎樣相減轉化 秒 剛有人諮詢我這些問題,寫了一些 希望對你有點用from datetime import datetime now time datetime.now now time now time.strftime y m d h m s now time dat...