计算购买太阳能,用多少年月日赚回本?

z = '''
太阳能,4000
电费,50
'''

# 求解太阳能多久回电费本
4000/50=80月,xx年

# print 打印
xx月,xx年,xx天
(从当前日期算,还有多少天)

img


import datetime
from datetime import date

import math
from dateutil.relativedelta import relativedelta

z = '''
太阳能,4000
电费,50
'''

# print 打印
# xx月,xx年,xx天
# (从当前日期算,还有多少天)
if __name__ == '__main__':
    # 求解太阳能多久回电费本
    months = 4000 / 50

    year, month, day = datetime.datetime.now().year, datetime.datetime.now().month, datetime.datetime.now().day
    now = date(year, month, day)
    print('now     : ' + str(now))

    # 对特定日期增加几个月
    new_date = date(year, month, day) + relativedelta(months=months)
    subtraction = new_date - now
    print('newDate : ' + str(new_date))
    print('%d月,%d年,%d天' % (months, math.ceil(months / 12), subtraction.days))


# 模块加载
from datetime import datetime as dt
from datetime import timedelta

# 计算
today = dt.now()
months = 4000/50 + today.month
year, month = map(int, (months//12 + today.year, months%12)) # 从今天算起,80个月后的日期年、月。
newdate =  dt.strptime(f"{year}-{month}-{today.day}", '%Y-%m-%d') - today
now = today.strftime(f"\n{'':>14}%Y年%m月%d日 %H:%M:%S\n{'-'*50}") # 新日期距今天数。

# 输出
print(f"{now}\n\n{'':>19}{year}{month:02}{today.day:02}日\n{'':>17}(距今还有 {newdate.days} 天)\n\n{'-'*50}\n")


img