Прескочи на садржај

Kalkulator Starost — Tačna Starost u Godinama, Mesecima i Danima

Besplatan kalkulator starost: unesite datum vašeg rođenja da biste dobili tačnu starost u godinama, mesecima i danima, plus ukupno nedelja, dana, sati i vaš sledeći rođendan.

Kalkulator Starost

Tačna starost
36 godine 7 meseci 26 dani

Rođeni ste na Monday

Sledeći rođendan: 127 dana odavde (punite 37)

Vaša starost u ostalim jedinicama

Meseci
439
Nedelje
1,912
Dani
13,387
Sati
321,288
Minuti
19,277,280
Sekunde
1,156,636,800

Napredak života

Vaša starost naspram ilustrativnog raspona od 80 godina.

Vizuelizacija starost3636 / 80 godine080
Kalkulator učitavanja...
📚

Dokumentacija

Шта је калкулатор старости?

Калкулатор старости одређује тачно време између два датума: датума рођења и циљног датума, обично данашњег. Резултат приказује у годинама, месецима и данима, као и у виду укупног броја месеци, недеља, дана, сати, минута и секунди. Старост се може израчунати и за датум у прошлости или будућности, чиме се показује колико је особа имала или ће имати година тог дана.

Како израчунати старост

Старост је разлика између два календарска датума. Та разлика се може тачно описати на два начина, а оба су корисна за различите сврхе.

Календарска старост (године, месеци, дани)

То је уобичајен начин на који људи наводе своје године, на пример: „33 године, 4 месеца и 5 дана“. Израчунава се у три корака:

  1. Избројати пуне године које су протекле од датума рођења.
  2. Од последњег рођендана избројати пуне месеце који су протекли.
  3. Од тог тренутка избројати преостале дане.

Корак 3 постаје сложен пред крај месеца, јер сви месеци немају исти број дана. Особа рођена 31. јануара, чија се старост мери 1. марта, има 1 месец и 1 дан. Месец дана после 31. јануара је 28. фебруар (или 29. фебруар у преступној години), јер не постоји 31. фебруар. 1. март је један дан после тога. Овај метод, који се понекад назива правилом relativedelta по библиотеци за Пајтон која га је учинила познатим, помера датум годишњице на последњи дан краћег месеца, тако да број дана никада не буде негативан.

Укупно протекло време (дани, сати, секунде)

За прецизно израчунавање проживљеног времена, оба датума се претварају у једну временску тачку, а разлика се изражава у целим данима:

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

где је d број целих дана, t циљни датум, а b датум рођења, при чему се сваки узима као број милисекунди, а делилац је број милисекунди у једном дану.

Оба датума се пре одузимања постављају на поноћ по UTC-у (координисаном универзалном времену). Тиме се спречава да прелазак на летње рачунање времена дода или одузме један сат и поремети број дана. Из укупног броја дана, број недеља добија се дељењем дана са 7 и заокруживањем наниже. Број сати, минута и секунди добија се множењем броја дана са 24, 1.440 и 86.400.

Дељењем укупног броја дана са 365 или 365,25 добија се приближна старост у годинама, али се не узима у обзир које су године у том периоду биле преступне. Календарско рачунање, описано изнад, тачно је. Календарску старост треба користити за одговор на питање „колико имам година“. Укупан број дана или недеља треба користити за задатке који захтевају прецизно протекло време, као што је одређивање времена за узимање доза лекова или одбројавање до неког важног датума.

Решени пример

Особа рођена на дан 1. јануар 2000., чија се старост рачуна на 1. јануар 2020.:

МераВредност
Календарска старост20 година, 0 месеци, 0 дана
Укупно месеци240
Укупно недеља1.043
Укупно дана7.305
Укупно сати175.320
Укупно минута10.519.200
Укупно секунди631.152.000
Дан у недељи рођењаСубота

Укупно 7.305 дана једнако је 20 × 365 плус 5 преступних дана, за преступне године 2000, 2004, 2008, 2012 и 2016. Свака од тих година додала је 29. фебруар који се налази унутар периода од 20 година. Зато је број дана већи од простог израчунавања 20 × 365, а ручно израчунавање лако може да погреши за неколико дана.

Формула за израчунавање старости у коду

Метода календарске старости описана изнад може се применити у већини програмских језика. Безбедније је користити уграђену библиотеку за датуме него ручно писати правила за преступне године и дужину месеци.

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

Мајкрософт упозорава да аргумент "md" може да врати негативан број или нетачан број дана близу граница месеца, па се део формуле који представља преостале дане не слаже увек са горе описаним правилом померања на последњи дан месеца.

Најчешће постављана питања

Како да сазнам тачну старост? Унесите датум рођења, а циљни датум оставите на данашњем датуму. Резултат приказује старост у годинама, месецима и данима, као и исту старост изражену у укупном броју дана, недеља, сати и секунди.

Зашто два калкулатора старости дају различите резултате? Разлика је обично у начину на који се броје преостали дани близу границе месеца. Калкулатор који крајем месеца прилагођава датум краћем месецу, као што је горе описано, може да се разликује за дан или два од оног који једноставно дели протекло време са 30.

Да ли се при израчунавању узимају у обзир преступне године? Да. Укупан број дана обухвата сваки 29. фебруар који се налази између два датума. У години без 29. фебруара, годишњица рођења на преступни дан рачуна се као 28. фебруар, последњи дан тог месеца. Особа чији је датум рођења 29. фебруар 1996. има 26 година, 11 месеци и 22 дана на дан 20. фебруар 2023., а њен следећи рођендан пада 8 дана касније, односно 28. фебруар 2023..

Може ли се старост израчунати за датум у прошлости или будућности? Да. Постављање циљног датума у будућност показује колико ће особа тог дана имати година. Постављање датума у прошлост показује колико је тада имала година. Датум рођења не може бити у будућности, а циљни датум не може бити пре датума рођења.

Да ли временске зоне утичу на резултат? Не. Оба датума се пре бројања дана претварају у поноћ по УТЦ-у, па укупан резултат остаје исти без обзира на локацију корисника или промене летњег рачунања времена.

Зашто се број дана разликује од дељења дана са 365,25? 365,25 је само просечна дужина године; не узима у обзир које су конкретне године у том периоду биле преступне године са 366 дана. Бројање целих дана између два стварна календарска датума је тачно.

Извори

  1. Пајтон dateutil — relativedelta, правило за месеце и дане код календарске старости описано изнад.
  2. Јава платформа — Period.between и ChronoUnit.DAYS.
  3. Microsoft Excel — функција DATEDIF.
  4. МДН веб документација — Date.
  5. Дершовиц, Н. и Рајнголд, Е. М. Календарски прорачуни: коначно издање. Универзитетска штампа Кембриџа, 2018.