Zmiana formatu z dni na lata

Zmiana formatu z dni na lata
GR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0

Poradzi ktoś jak z poniższym kodzie zmienić format wyświetlania wyniku z dni na lata i dni? W tym momencie wynik pokazuje w dniach i jeśli np. podzielę go przez 365 to dalej jest dopisek "days"

Kopiuj

from datetime import date

born = input("Please type your born date here (YYYY-MM-DD): ")

year = int(born[:4])
month = int(born[5:7])
day = int(born[8:10])

calc = date.today() - date(year, month, day)

print(calc)

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Wersja prosta: calc.days // 365
Wersja poprawna: https://stackoverflow.com/questions/765797/python-timedelta-in-years

GR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0

Super, dzięki za podpowiedź.

Zrobiłem to tak:

Kopiuj
from datetime import date
from dateutil.relativedelta import relativedelta

born = input("Please type your born date here (YYYY-MM-DD): ")

year = int(born[:4])
month = int(born[5:7])
day = int(born[8:10])

birthday = date(year, month, day)

print(relativedelta(date.today(), birthday))

wyprintowało mi coś takiego: relativedelta(years=+30, months=+8, days=+10)

Ostatnie pytanie. Czy ja mogę to przedstawić w formie "Masz 30 lat, 8 miesięcy i 10 dni?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.