Siirry pääsisältöön

Päivämääräerolakin ilmaiseksi

Laske tarkka ero kahden päivämäärän välillä — vuodet, kuukaudet, päivät, viikot, arkipäivät (pois lukien viikonloput), tunnit ja minuutit.

Toimii offline-tilassa kerran ladattuna

Pikavalinnat

Valitse molemmat päivämäärät nähdäksesi eron.

Yleiset käyttötavat

  • Laske Päivät Odotettuun SynnytyspäiväänLaske alas odotettua synnytysajankohtaa: selvitä tarkasti kuinka monta viikkoa, päivää ja tuntia on jäljellä suurelle päivälle.
  • Päivät LomaasiLaske alaspäin matkaasi työpäivillä, yhteensä päivillä ja jäljellä olevilla viikoilla suunnittelumielessä.
  • Työpäivät ProjektinkohtaLaske tarkka määrä työpäivää (viikonlopputkulkuista) tänään ja projektinkohdan välillä.
  • Laske Vuosipäivän Päivät YhdessäSelvitä tarkasti kuinka monta päivää, kuukautta ja vuotta olet ollut jonkun erityisen kanssa.
  • Ikäero Laskin Kahden Henkilön VälilläLaske tarkka ikäero kahden syntymäpäivän välillä: vuosia, kuukausia ja päiviä erotettuna.

Miten se toimii

Kaikki laskenta tapahtuu kokonaan selaimessa käsin kirjoitetulla UTC-aritmetiikalla — ei ulkoista kirjastoa, ei palvelinpyyntöä. Työkalu jäsentää VVVV-KK-PP-merkkijonot kalenterikomponenteiksi, laskee erotukset Date.UTC()-millisekuntiaikaleimoja käyttäen kesäajan aiheuttaman ajautumisen välttämiseksi, ja iteroi päivä kerrallaan laskeakseen maanantai–perjantai-työpäivät.

  1. 1
    Turvallinen päivämäärän jäsennys
    Jokainen päivämäärämerkkijono validoidaan säännöllisellä lausekkeella ja rakennetaan sitten uudelleen Date.UTC()-funktiolla — ei new Date(merkkijono) -funktiolla — jotta käyttäjät UTC:stä länteen eivät koskaan näe viikonpäivän siirtymää, jonka selaimen paikallisen aikavyöhykkeen tulkinta pelkistä päivämääräsyötteistä aiheuttaisi.
  2. 2
    UTC-millisekuntivähennys
    Kaksi kalenteripäivämäärää muunnetaan UTC-keskiyön aikaleimoiksi Date.UTC(v, k, p)-funktiolla. Kokonaislukujako 86 400 000 millisekunnalla antaa tarkan kokonaispäivien määrän, joka on immuuni kesäaikasiirtymille, jotka muutoin voisivat saada päivän näyttämään 23 tai 25 tunnin mittaiselta.
  3. 3
    Kalenterierittely ja työpäivien laskenta
    Käsin kirjoitettu vuosi/kuukausi/päivä-hajotus käsittelee kuukausien pituuksien epäsäännöllisyydet (lainaten päiviä edelliseltä kuukaudelta tarvittaessa). Erillinen silmukka käy läpi jokaisen UTC-päivän kahden päivämäärän välillä ja kasvattaa laskuria vain maanantaista perjantaihin (getUTCDay() !== 0 tai 6), tuottaen tarkan työpäiväsumman riippumatta paikallisasetuksista.
  4. 4
    Tulokset näytetään kaikissa yksiköissä
    Summat muotoillaan toLocaleString()-funktiolla käyttäen sivun paikallisasetusta paikallisasetustietoiseen numeroryhmittelyyn, ja näytetään sitten samanaikaisesti vuosina/kuukausina/päivinä, kokonaispäivinä, työpäivinä, viikkoina, tunteina ja minuutteina. Nykyinen päivämääräpari kirjoitetaan URL-osoitteeseen history.replaceState-toiminnolla, joten mikä tahansa tulos voidaan kirjanmerkitä tai jakaa suorana linkkinä.

Liittyvät työkalut

Usein kysytyt kysymykset