Pređi na glavni sadržaj
LibraTool logoLibraTool

Kalkulator razlike datuma — besplatno

Izračunajte tačnu razliku između dva datuma — godine, mesece, dane, nedelje, radne dane (isključujući vikende), sate i minute.

Radi van mreže kada se učita

Brzi predlošci

Izaberite oba datuma da vidite razliku.

Uobičajene upotrebe

  • Izračunajte dane do datuma porođajaOdbrojite dane do datuma porođaja beba — saznajte tačno koliko nedelja, dana i časova ostaje do velikog dana.
  • Dani do vašeg odmoraOdbrojite dane do putovanja sa radnim danima, ukupnim danima i preostalim nedeljama za planiranje.
  • Radni dani do roka projektaIzračunajte tačan broj radnih dana (isključujući vikende) između danas i roka projekta.
  • Izračunajte dane godišnjice zajednoSaznajte tačno koliko dana, meseci i godina ste zajedno sa nekim specijalnim.
  • Kalkulator razlike uzrasta između dve osobeIzračunajte tačnu razliku u uzrastu između dva rođendana — godine, meseca i dana razdvajanja.

Kako funkcioniše

Sve izračunavanje se u potpunosti izvršava u pregledaču koristeći ručno napisanu UTC aritmetiku — bez spoljne biblioteke, bez zahteva serveru. Alatka parsira nizove GGGG-MM-DD u kalendarske komponente, izračunava razlike koristeći vremenske pečate Date.UTC() u milisekundama da izbegne pomeranje zbog letnjeg vremena, i iterira dan po dan da izbroji radne dane ponedeljak–petak.

  1. 1
    Bezbedno parsiranje datuma
    Svaki niz datuma se proverava regularnim izrazom i zatim rekonstruiše preko Date.UTC() — ne new Date(niz) — tako da korisnici zapadno od UTC-a nikada ne vide pomeranje dana u nedelji izazvano tumačenjem lokalne vremenske zone pregledača za unose samo sa datumom.
  2. 2
    Oduzimanje UTC milisekundi
    Dva kalendarska datuma se konvertuju u vremenske pečate UTC ponoći pomoću Date.UTC(g, m, d). Celobrojno deljenje sa 86.400.000 ms daje tačan broj celih dana koji je imun na tranzicije letnjeg vremena, koje inače mogu učiniti da dan izgleda kao da traje 23 ili 25 sati.
  3. 3
    Kalendarski raspad i broj radnih dana
    Ručno napisana dekompozicija godina/mesec/dan rukuje nepravilnostima u dužini meseca (pozajmljujući dane od prethodnog meseca po potrebi). Odvojena petlja korača kroz svaki UTC dan između dva datuma i povećava brojač samo za ponedeljak–petak (getUTCDay() !== 0 ili 6), proizvodeći tačan ukupan broj radnih dana bez obzira na jezik.
  4. 4
    Rezultati prikazani u svim jedinicama
    Ukupne vrednosti se formatiraju pomoću toLocaleString() koristeći jezik stranice za grupisanje cifara svesno jezika, zatim se istovremeno prikazuju kao godine/meseci/dani, ukupno dana, radni dani, nedelje, sati, i minuti. Trenutni par datuma se upisuje u URL preko history.replaceState tako da svaki rezultat može biti obeležen ili podeljen kao direktan link.

Slične alatke

Česta pitanja