CooSpace és az óraállítás

Pech

A 7 perces időlimit helyett csupán 2 perc maradt a feladat kitöltésére az óraátállítás "viszontagságai" miatt.

Hozzászólások

A fenti kép egy "önellenőrző" tesztről készült. Ezek határideje - kevés kivételtől eltekintve - néhány nap.

Van, hogy átcsúszok a teendőkkel hajnalra, most egyszerűen így alakult - még, ha hihetetlenül is hangzik.

Egyébként is, így legalább nem a csúcsidőben terhelem a kiszolgálót :-)

Látszik, hogy a programozók közül sok nem ismeri az UTC előnyét, se a unix_timestamp előnyét.
Mindkettő monoton növekvő, utóbbi esetén ráadásul egyetlen kivonással megvan a kitöltésre fordított másodperc.

Egyik sem monoton növekvő.
A UNIX timestamp az 1970-01-01T00:00:00Z óta eltelt másodpercek számát adja meg, azonban nem veszi figyelembe a szökőmásodpercet.

Amikor pozitív irányú szökőmásodperc van, akkor két olyan időpont is van, amihez ugyanaz a UNIX timestamp tartozik.

Például 1998 végén volt pozitív szökőmásodperc, itt volt olyan, hogy 1998-12-31T23:59:60.

Ez UNIX timestampben 915148800.

Eltelt egy másodperc, ekkor az UTC idő 1999-01-01T00:00:00 lett.

Ez UNIX timestampben ugyanúgy 915148800.

Az idő telt, de a UNIX timestamp nem, nem monoton növekvő akkor, amikor UTC-ben pozitív szökőmásodperc van.

Az UTC sem monoton növekvő, mert a szabvány megengedi a negatív szökőmásodperceket is.

 

Az UT1/TAI idő az monton növő, de az meg eltér az UTC időszámítástól (pont a szökőmásodpercek számával).

Szóval nem lehet egyetlen kivonással sem megadni a kitöltésre fordított másodpercet.

Nem egyszerű az időkezelés, nagyon nem egyszerű, nem szabad felülni arra a vonatra, hogy "UTC vagy UNIX timestamp, és utána elég matematikai műveleteket használni". Sajnos az UTC-ben tárolt időt is csak úgy lehet helyesen kezelni, ha táblázatokat is használsz, amik tartalmazzák a szökőmásodperceket.

Én ezt tudom. De egyrészt: cseszheted a nem szigorú monotonitást, ha kivonással akarsz időtartamot megállapítani. A valóságban telik el idő, míg a (nem szigorúan) monoton időszámításban nem.

Gondolom 2012-ben is úgy gondolta pár okos, hogy "á, elég a monoton időszámítás, nem kell más", és lett belőle ez:
https://openquery.com.au/blog/2012-leap-second-linux

Van aki úgy kezdi a programnyelv választást, hogy dátumkezelő van-e, meg vannak olyanok, akik elkezdik megírni a sajátjukat. Agyvérzést kapok pusztán a gondolattól, hogy két dátum közti eltelt időt megmondjam unix timestamp nélkül. De hát mindenkinek kell egy hobbi.

Ha nem válaszolnék kommentben, hát küldj privátot!

Tapasztalatom szerint a szoftverfejlesztői szakma nagy része vagy nem tudja értelmileg feldolgozni, mi is az óraátállás, és hogyan lehetne jól kezelni, vagy pedig telibeszarja (évente csak 2x fordul elő, minek idegeskedjen)...

Megj: szoftverfejlesztő vagyok, és innen nézve elkeserítő az ebben a szakmában dolgozók képessége és munkához való hozzáállása. Nem véletlenül van ennyi fos minőségű szoftver manapság.