首页 > 解决方案 > Python 倒计时,但在年、月、周、日、小时、分钟、秒

问题描述

我想以倒计时的形式显示我的一生。不幸的是,Python datetime 只允许几天。并且无法编程转换

这是我尝试过的:

#!/usr/bin/env python3

import time
import datetime
from dateutil.relativedelta import relativedelta
from datetime import timedelta


while True:
        lebenszeit = datetime.datetime(2085,7,6) - datetime.datetime.now()
        jahr     = str(int((lebenszeit.days)/365.25))
        monate   = str('%0.2d' %(int((((lebenszeit.days)*365)-int((lebenszeit.days)/365))*12)))
        tage     = str('%0.2d' %(int(((((lebenszeit.days)/365)-int((lebenszeit.days)/365))*12)-((((lebenszeit.days)/365)-int((lebenszeit.days)/365))*12)*30)))
        print(jahr+"."+monate+"."+tag)

        i = i+1

如您所见,非常复杂...

我想要一个看起来像这样的倒计时(年、月、周、天、小时、分钟、秒):

68.02.04.29.07.40.44

标签: pythondatetimecountdown

解决方案


这就是我的做法。请注意,“月”是近似值,假设每月有 30 天。仅使用“周”会更准确。

import time
import datetime
from datetime import timedelta

lebenszeit  = datetime.datetime(2085,7,6) - datetime.datetime.now()
alldays = lebenszeit.days

jahr     = int((alldays)/365.25)
alldays -= int(jahr * 365.25)
months   = int((alldays)/30.0)
alldays -= months * 30
weeks    = int((alldays)/7.0)
alldays -= weeks * 7
days     = alldays

print(f"{jahr}.{months:02d}.{weeks:02d}.{days:02d}")

推荐阅读