Preskoči na sadržaj

Kalkulator godina — Točna godina u godinama, mjesecima i danima

Besplatni kalkulator godina: unesite datum vašeg rođenja da dobijete točnu godinu u godinama, mjesecima i danima, plus ukupno tjedne, dane, sate i sljedeći rođendan.

Kalkulator godina

Točna godina
36 godina 7 mjeseci 26 dana

Rođeni/a ste u Monday

Sljedeći rođendan: 127 dana dalje (punite 37)

Vaše godine u drugim jedinicama

Mjeseci
439
Tjedni
1,912
Dani
13,387
Sati
321,288
Minute
19,277,280
Sekunde
1,156,636,800

Napredak života

Vaša godina protiv ilustrativnog raspona od 80 godina.

Vizualizacija godina3636 / 80 godina080
Kalkulator učitavanja...
📚

Dokumentacija

Što je kalkulator dobi?

Kalkulator dobi utvrđuje točno vrijeme između dvaju datuma: datuma rođenja i ciljnog datuma, obično današnjeg datuma. Rezultat prikazuje u godinama, mjesecima i danima, kao i kao ukupni broj mjeseci, tjedana, dana, sati, minuta i sekundi. Dob se može izračunati i za datum u prošlosti ili budućnosti, čime se pokazuje koliko je osoba imala ili će imati godina toga dana.

Kako izračunati dob

Dob je razlika između dvaju kalendarskih datuma. Tu se razliku može ispravno opisati na dva načina, a oba su korisna za različite svrhe.

Kalendarska dob (godine, mjeseci, dani)

To je uobičajen način navođenja dobi, primjerice „33 godine, 4 mjeseca i 5 dana”. Izračunava se u tri koraka:

  1. Izbrojite pune godine koje su prošle od datuma rođenja.
  2. Od posljednjeg rođendana izbrojite pune mjesece koji su prošli.
  3. Zatim izbrojite preostale dane.

Korak 3 postaje složen pri kraju mjeseca jer svi mjeseci nemaju jednak broj dana. Osoba rođena 31. siječnja, čija se dob računa na 1. ožujka, stara je 1 mjesec i 1 dan. Mjesec dana nakon 31. siječnja jest 28. veljače (ili 29. veljače u prijestupnoj godini), jer ne postoji 31. veljače. 1. ožujka slijedi jedan dan nakon toga. Ova metoda, koja se ponekad naziva pravilom relativedelta prema Pythonovoj biblioteci koja ju je popularizirala, pomiče datum godišnjice na posljednji dan kraćeg mjeseca kako broj dana ne bi postao negativan.

Ukupno proteklo vrijeme (dani, sati, sekunde)

Za precizan izračun proživljenog vremena oba se datuma svode na jednu vremensku točku, a razlika se računa u punim danima:

d=⌊t−b86400000⌋d = \left\lfloor \frac{t - b}{86400000} \right\rfloor

gdje je d broj cijelih dana, t ciljni datum, a b datum rođenja, pri čemu se svaki od njih uzima kao broj milisekundi, dok je djelitelj broj milisekundi u jednom danu.

Oba se datuma prije oduzimanja postavljaju na ponoć prema UTC-u (koordiniranom svjetskom vremenu). Time se sprječava da promjene ljetnog računanja vremena dodaju ili oduzmu jedan sat i iskrive broj dana. Iz ukupnog broja dana broj tjedana dobiva se dijeljenjem s 7 i zaokruživanjem prema dolje. Broj sati, minuta i sekundi dobiva se množenjem broja dana s 24, 1.440 i 86.400.

Dijeljenje ukupnog broja dana s 365 ili 365,25 daje približnu dob u godinama, ali ne uzima u obzir koje su godine u tom razdoblju bile prijestupne. Kalendarsko računanje, opisano iznad, točno je. Kalendarsku dob koristite za odgovor na pitanje „koliko imam godina”. Ukupne dane ili tjedne koristite za zadatke koji zahtijevaju precizno proteklo vrijeme, primjerice za određivanje vremena uzimanja doza lijeka ili odbrojavanje do važnog događaja.

Primjer izračuna

Osoba rođena 1. siječnja 2000., čija se dob računa na 1. siječnja 2020.:

MjeraVrijednost
Kalendarska dob20 godina, 0 mjeseci, 0 dana
Ukupno mjeseci240
Ukupno tjedana1.043
Ukupno dana7.305
Ukupno sati175.320
Ukupno minuta10.519.200
Ukupno sekundi631.152.000
Dan u tjednu rođenjaSubota

Ukupno 7.305 dana jednako je 20 × 365 plus 5 prijestupnih dana, za prijestupne godine 2000, 2004, 2008, 2012 i 2016. Svaka od tih godina dodala je 29. veljače koji pada unutar razdoblja od 20 godina. Zato je broj dana veći od jednostavnog izračuna 20 × 365, a ručni izračun lako može pogriješiti za nekoliko dana.

Formula za izračun dobi u programskom kodu

Gornja metoda izračuna kalendarske dobi može se primijeniti u većini programskih jezika. Sigurnije je koristiti ugrađenu biblioteku za datume nego ručno pisati pravila za prijestupne godine i duljinu mjeseci.

1from dateutil.relativedelta import relativedelta
2from datetime import date
3
4birth, target = date(2000, 1, 1), date(2020, 1, 1)
5
6age = relativedelta(target, birth)     # calendar age
7print(f"{age.years}y {age.months}m {age.days}d")
8
9total_days = (target - birth).days     # total elapsed days
10print(total_days)                      # 7305
11

Microsoft upozorava da argument "md" može vratiti negativan broj ili pogrešan broj dana pri prijelazu između mjeseci, pa se dio formule s preostalim danima ne podudara uvijek s pravilom pomicanja na posljednji dan kraćeg mjeseca.

Često postavljana pitanja

Kako mogu pronaći svoju točnu dob? Unesite datum rođenja, a ciljni datum ostavite na današnjem datumu. Rezultat prikazuje dob u godinama, mjesecima i danima, kao i istu dob izraženu ukupnim brojem dana, tjedana, sati i sekundi.

Zašto dva kalkulatora dobi daju različite rezultate? Razlika je obično u načinu računanja preostalih dana pri prijelazu između mjeseci. Kalkulator koji na kraju mjeseca pomiče datum na kraći mjesec, kao što je opisano iznad, može se razlikovati za dan ili dva od kalkulatora koji jednostavno dijeli proteklo vrijeme s 30.

Uzima li izračun u obzir prijestupne godine? Da. Ukupan broj dana uključuje svaki 29. veljače koji pada između ta dva datuma. U godini bez 29. veljače godišnjica rođenja na prijestupni dan računa se kao 28. veljače, posljednji dan toga mjeseca. Osoba rođena 29. veljače 1996. ima 26 godina, 11 mjeseci i 22 dana na dan 20. veljače 2023., a njezin sljedeći rođendan pada 8 dana kasnije, na dan 28. veljače 2023..

Može li se dob izračunati za datum u prošlosti ili budućnosti? Da. Postavljanjem ciljnog datuma u budućnost prikazuje se koliko će osoba imati godina toga dana. Postavljanjem datuma u prošlost prikazuje se koliko je osoba tada imala godina. Datum rođenja ne može biti u budućnosti, a ciljni datum ne može biti prije datuma rođenja.

Utječu li vremenske zone na rezultat? Ne. Oba se datuma prije izračuna broja dana pretvaraju u ponoć prema UTC-u, pa ukupan rezultat ostaje isti bez obzira na lokaciju korisnika ili promjene ljetnog računanja vremena.

Zašto se broj dana razlikuje od dijeljenja broja dana s 365,25? 365,25 samo je prosječna duljina godine; ne prati koje su konkretne godine u tom razdoblju prijestupne godine s 366 dana. Brojanje punih dana između dvaju stvarnih kalendarskih datuma točno je.

Izvori

  1. Python dateutil — relativedelta, gore opisano pravilo za mjesece i dane pri izračunu kalendarske dobi.
  2. Java Platforma — Period.between i ChronoUnit.DAYS.
  3. Microsoft Excel — funkcija DATEDIF.
  4. MDN Web Docs — Date.
  5. Dershowitz, N. i Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.