Kako izračunati broj dana između datuma (i kada je to zaista važno)
Bilo da pratiš rok, odbrojavaš do odmora ili pokušavaš da shvatiš koliko je vremena prošlo — izračunati broj dana između dva datuma je jedna od onih stvari koja zvuči jednostavno, a ipak stalno zbunjuje ljude.
Ovaj tekst objašnjava kako to funkcioniše, koje su najčešće greške i kada je važnije nego što misliš.
Osnovna formula
U suštini, računanje je oduzimanje:
Dani između = Krajnji datum − Početni datum
Ali datumi nisu obični brojevi. Meseci imaju različite dužine, postoje prestupne godine i vremenske zone. Tu stvari postaju komplikovanije.
Pouzdan alat sve to rešava umesto tebe — ali razumevanje šta se dešava „ispod haube” pomaže da ga koristiš ispravno.
Česte situacije u praksi
Rokovi na projektima
Znaš da je rok 31. mart. Danas je 12. februar. Koliko radnih dana imaš? Sirovi broj dana je 47, ali kada izuzmeš vikende pada na 34. Važno je znati razliku.
Godišnjice i jubileji
„Otvoreni smo 1.000 dana” zvuči konkretnije nego „oko dve godine i devet meseci”. Broj dana pretvara prekretnice u nešto opipljivo.
Pravne i finansijske računice
Kamata na kredit se obračunava dnevno. Ugovori o zakupu navode tačan broj dana. Zatezne naknade stupaju na snagu određenog dana. U ovim kontekstima, greška od jednog dana ima realne posledice.
Praćenje zdravlja i treninga
Koliko dana je prošlo otkako si započeo novu naviku? Koliko dana do sledeće kontrole? Preciznost čuva nizove (streaks) poštenim.
Greške koje ljudi prave
Brojanje početnog dana
Ako počneš u ponedeljak i završiš u sredu, da li je to 2 dana ili 3?
- Ekskluzivno brojanje (ponedeljak do srede = 2): koristi se za trajanja, npr. „koliko je put trajao”
- Inkluzivno brojanje (ponedeljak do srede = 3): koristi se kada se računa svaki dan u opsegu, npr. kod ugovora o najmu
Kalkulator „dani između datuma” bi trebalo da kaže koji režim koristi.
Ignorisanje prestupnih godina
29. februar postoji otprilike svake 4 godine. Ako tvoja računica prelazi preko februara u prestupnoj godini, možeš pogrešiti za jedan dan ako alat to ne uzima u obzir.
Mešanje redosleda meseca i dana
1. mart do 1. april je 31 dan. 1. april do 1. mart (prethodne godine) je 365 dana. Redosled je bitan — ako uneseš krajnji datum pre početnog, dobijaš negativan rezultat (ili grešku, zavisno od alata).
Vremenske zone
Ako računaš preko ponoći ili između regiona, sam „datum” može da se pomeri. 31. mart u 23:00 u Njujorku je već 1. april u Londonu. Za većinu svakodnevnih potreba to nije važno — ali za server-side ili globalno usklađene sisteme jeste.
Kako računanje zapravo radi
Većina implementacija koristi jedan od dva pristupa:
Razlika Julijanskog broja dana (Julian Day Number) — svaki kalendarski datum se pretvara u kontinuirani ceo broj (JDN). Razlika između dva JDN daje tačan broj dana. Bez petlji i bez ručnog brojanja meseci.
Milisekunde od epohe (epoch milliseconds) — datumi se pretvaraju u milisekunde od 1. januara 1970 (Unix epoha). Razlika se deli sa 86,400,000 (milisekundi u danu). Tako JavaScript Date interno funkcioniše.
Oba pristupa daju isti rezultat za prošle i buduće datume. Epoch pristup koriste većina online alata i programskih jezika.
Brzi podsetnik
| Scenario | Dani |
|---|---|
| 1 godina (neprestupna) | 365 |
| 1 godina (prestupna) | 366 |
| 1 mesec (prosek) | ~30.44 |
| Februar (neprestupna) | 28 |
| Februar (prestupna) | 29 |
| 1 nedelja | 7 |
Kada koristiti kalkulator umesto računanja „iz glave”
Računanje iz glave je dovoljno za grube procene — „oko 3 meseca” ili „otprilike 6 nedelja”. Ali uzmi kalkulator kada:
- Tačan broj menja ishod (ugovori, rokovi, naknade)
- Prelaziš granice meseca ili godine
- Treba da izuzmeš vikende ili praznike
- Saopštavaš broj nekome ko će na osnovu toga postupiti
Alat Days Between Dates računa tačan broj dana između bilo koja dva datuma, automatski uzimajući u obzir prestupne godine i dužine meseci.
Zaključak
Računanje dana između datuma je jednostavno kada znaš rubne slučajeve: inkluzivno vs. ekskluzivno brojanje, prestupne godine i vremenske zone. Za svakodnevnu upotrebu, dobar kalkulator daje tačan broj odmah. Za ugovore, finansije ili planiranje rokova — preciznost je poenta.