Problematika računanja vremena - Zakrpine zakrpe zakrpa

Mjerenje vremena toliko je sveopća i svakodnevna tema da bi se lako moglo pomisliti kako je već odavno moralo postati standardizirano i nedvosmisleno. Kada tamo – radi se o jednom od najgorih kaosa koje je ljudski rod smislio

Oton Ribić nedjelja, 1. studenog 2020. u 00:00

Razvoj softvera, između ostalog, interesantan je i zbog toga što su određeni problemi koji neupućenima izvana moraju djelovati vrlo teškima, poput sortiranja milijuna ili milijardi podataka, u stvarnosti razmjerno jednostavni. No ima i obrnutih primjera: bilo bi logično pomisliti da je računanje i mjerenje vremena (primjerice, raspon između dva događaja) trivijalno, a zapravo se radi o toliko zapetljanom problemu da mnogima pada mrak na oči pri samoj pomisli na to da se time trebaju baviti.

Treba priznati – taj problem možda i nije toliko bolan ako se ograniči samo na vrlo uzak raspon: nešto kratkog trajanja, u moderno doba, bez promjene vremenskih zona. Srećom, u svakodnevnom nam je životu to i najčešći tip mjerenja. No čim problem proširimo na cijeli svijet i duge vremenske raspone, što je u mnogim sektorima poput nautike, avijacije, energetike ili IT-a neizbježno, na scenu dolazi čitava vojska komplikacija. Naoko može djelovati trivijalnim izračunati broj sekundi proteklih od ponoći 1900. godine na Greenwichu, ili broj dana od rođenja Dioklecijana – i to bi i bio slučaj da se vrijeme otad mjeri konzistentno i linearno – no nije tako. Kako bi takvi proračuni uopće izgledali? Krenimo redom.

Sunce, ljeto i zima

Ako se i ne bavite ovom tematikom, iz svakodnevnog života neke su vam od tih osnovnih komplikacija već dobro poznate. Tipičan primjer je prijestupna godina sa svojim 29. veljače. Ništa lakše nego u algoritam dodati jedan dan više ako je broj godine djeljiv s četiri? Ne, jer tu ima još logike: prijestupne godine ipak nisu prijestupne ako su djeljive sa 100, ali povrh toga ipak jesu ako su djeljive s 400. Stoga, u našem dobu mi nismo to “osjetili”, ali 1900. godina nije bila, kao što i 2100. neće biti, prijestupna.

Drugi rašireni primjer su ljetna i zimska vremena. Iako se s jednog na drugo prebacujemo prema unaprijed zadanom kalendarskom pravilu, ne koriste sve države ista pravila, već proračun u obzir mora uzeti pravilo za specifičnu lokaciju o kojoj se radi. Na to treba dodati i da određene države uopće ne mijenjaju vrijeme, a one na južnoj hemisferi mijenjaju ga u suprotnom smjeru od sjeverne – kad na jednoj počinje proljeće, na drugoj počinje jesen.

Za situacije gdje je važno dati točno vrijeme događaja, dodatno je potrebno uvesti način kako diferencirati je li se nešto dogodilo prije ili poslije promjene vremena. Kada pomičemo kazaljku s 3 sata na 2, potpuno isti sat “odvrtjet” će se još jednom. Razvijate li softver koji s tim treba računati i korisniku to komunicirati, eto novih nevolja – radi jednog sata godišnje.

I tek onda dolazimo do pravog vatrometa, vremenskih zona.

Države u plavom koriste sjeverno, u narančastom južno pomicanje sata, a tamnosive su ga koristile ali napustile. Nije mnogo država – ali u pitanju su one najutjecajnije
Države u plavom koriste sjeverno, u narančastom južno pomicanje sata, a tamnosive su ga koristile ali napustile. Nije mnogo država – ali u pitanju su one najutjecajnije

Gdje, kada, tko?

Budimo pošteni, koncept vremenskih zona imao je smisla u doba kad se o njemu prvi put počelo razmišljati. U svijetu u kojem ni poruke ni ljudi nisu mogli putovati brže nego brod koji ih nosi, takva ideja služila je svrsi i omogućavala je svakome da njegovo lokalno podne bude vrijeme kad mu je Sunce otprilike najviše na horizontu, a dnevni sati otprilike odgovaraju onome što mu odgovara (čaj u pet sati?).

No za proračun koliko je sati gdje u kojem trenutku, što je s modernim komunikacijama postalo svakodnevno, stvari postaju daleko kompliciranije. I to prije svega zato što se ovdje više nije moguće oslanjati samo na granice država, već mnoge države unutar sebe imaju zone raspoređene prema vlastitim pravilima koja uopće ne moraju biti logična.

Tipično rješenje te zavrzlame, koje ste vjerojatno već i sami uočili iz raznih programa, jest ponuditi popis dobro poznatih mjesta i nadati se da korisnik zna je li traženo mjesto u istoj zoni kao i neko od njih. Ako ne, ili počinjete samo s geografskim koordinatama, nema druge nego locirati prema pravilima tih zona.

Iako je to u praksi manji problem za proračun, dodajmo i da raspored zona često nema puno veze s njihovom lokacijom – recimo, Island je u zoni 0 iz političkih razloga, iako bi prema svemu morao biti -1. Nadalje, iako se Kina proteže kroz pet zona, kompromisno je prihvatila jednu (+8), što znači da je nekim njenim stanovnicima podne u doba kad Sunce još nije ni blizu vrha, a drugima kad je već davno prošlo.

Isto tako, postoje zone koje prema logici ne bi trebale postojati, primjerice, +13 i +14, no postoje zbog ekonomskih razloga, kako bi određeni pacifički otoci bili u istom danu s Australijom s kojom trguju te s ostalim otocima iz otočja, a nemaju sve ni cijeli broj sati odmaka od nule: neki primjeri su Iran, koji je u zoni +3:30, Indija u +5:30, ili Nepal u još egzotičnijih +5:45.

Astronomija i kalendari

Ako s razine sati pređemo na dane, i ovdje nailazimo na svoj sustav pravila. Danas je ipak većina svijeta prešla na gregorijanski kalendar, ali nisu sve države prešle na njega istodobno, što komplicira stvari ako računamo s nekim davnijim datumima. Osim toga, za neke specifične svrhe i dalje je u upotrebi julijanski.

Na suprotnoj strani skale imamo i pojam prijestupne sekunde. Naime, radi usporavanja vrtnje Zemlje i geoloških efekata koji su uglavnom nepredvidljivi, ponekad je potrebno minimalno promijeniti dužinu dana kako, kroz duže razdoblje, on ne bi previše “odlutao” od sunčeva dana. Zato posebno tijelo, Međunarodna služba za rotaciju Zemlje i referentne sustave, na temelju preciznih mjerenja, povremeno donese odluku da će posljednja minuta određenog mjeseca (u pravilu lipnja ili prosinca) trajati jednu sekundu duže, i tako imati 61 sekundu. Ovdje ne pomaže nikakav algoritam, već samo osluškivanje objava tog tijela i pravodobna priprema za minutu s tom dodatnom sekundom, ako je najavljena.

Posebno međunarodno atomsko vrijeme ne slijedi te promjene te ono postupno ide “ispred” kalendarskog. Njega, primjerice, koristi GPS sustav.

Naposljetku, ako ste prošli kroz ovih nekoliko krugova pakla i u svoje algoritme i proračune uključili sve te detalje, treba reći da niti to nije kraj, jer u obzir treba uzeti raznorazne promjene koje su se zbivale tijekom prošlosti. Države, ili regije unutar njih, mijenjale su vremenske zone. Ponekad su uvele ljetno računanje vremena pa onda kasnije prestale. I nema nikakve sumnje da će se takve promjene nastavljati u budućnosti, tako da za taj cjelokupni problem ne postoji nešto kao definitivno rješenje. U najboljem slučaju, može postojati set algoritama koji se bazira na povijesnim podacima i novostima o aktualnim promjenama koje dolaze iz svijeta.

George Hudson, prvi inicijator ideje pomicanja sata, koja je u njegovo vrijeme imala svrhu i namjenu, ali u moderno doba njena ukupna isplativost kopni
George Hudson, prvi inicijator ideje pomicanja sata, koja je u njegovo vrijeme imala svrhu i namjenu, ali u moderno doba njena ukupna isplativost kopni

Otpetljavanje čvora

Mora li sve to biti toliko kompleksno? Očito je kako je velik broj svih tih pravila nastao kao zakrpa za neki “akutni” problem u određeno vrijeme, koja je tada imala svoju svrhu i smisao. No malo tko je tada računao s dolaskom digitalnog doba, u kojem svaki čovjek oko sebe ima desetak satova, sinkroniziranih ili ne, a čije funkcioniranje često ovisi o točnom računanju vremena.

Uz minimum truda moguće je naći desetke slučajeva gdje je zbog nekog od spomenutih pravila neki sustav zakazao, a neki od njih imali su veće posljedice od samog zbunjivanja korisnika na nekoliko trenutaka – primjerice, dostupnost Interneta, pad osnovnih usluga banaka, itd. Također, promjena ljetnog i zimskog vremena često košta više u trudu ljudi koji moraju pratiti i obaviti sve te promjene, nego što se u moderno vrijeme uštedi grijanjem, hlađenjem ili svjetlom.

S pozitivne strane, neke od inicijativa za pojednostavljenjem tog meteža sve su primjetnije proteklih godina, s time da je prijedlog ukidanja ljetnog i zimskog vremena na razini Europske unije bio svojedobno dosta publiciran, odgođen, i opet će doći na red. (S time da je još uvijek pitanje koliko će uistinu pojednostaviti stvari ako države za sebe izaberu različite stalne vremenske zone.)

Također, već se petnaestak godina diskutira o mogućnostima ukidanja prijestupne sekunde koja stvara probleme radi svoje nepredvidljivosti na duge staze, te kako izbjeći probleme koji bi time nastali, prije svega odstupanje solarnog dana od kalendarskog tijekom duljeg razdoblja. O tome bi trebala odlučiti sljedeća sjednica 2023., iako treba reći i to da se donošenje odluke odgađa još od 2012.

Bolja budućnost?

U međuvremenu, razne su struke unutar svojeg područja rada taj sustav već i sam pojednostavile. Brojne organizacije unutar vojske, policije, nautike, avijacije, industrije i sličnog, već su dogovorile vlastiti prelazak na univerzalno svjetsko vrijeme, žrtvujući pojam kalendarskog podudaranja sati s dnevnim svjetlom, ali pojednostavivši praktički sve ostalo. I u IT-u je sve češća praksa vremena bilježiti u nekom dogovorenom stabilnom standardu, kao što je UTC (bazično nasljednik Greenwicha, bez promjene zimskog i ljetnog vremena), a tek pri prikazu korisnicima izračunati što je zapravo njihovo lokalno vrijeme koje im se treba prikazivati.

Druga pozitivna strana je to što za većinu raširenih programskih jezika postoji barem nekakav postojeći kôd koji se bavi tom problematikom, pa u slučaju da vas “zadesi” neki posao koji se bavi vremenskim proračunima, vjerojatno nije nužno započeti baš od potpune nule.

No to ne mijenja činjenicu da je postojeće računanje vremena sve nespretnije u današnjem super povezanom svijetu. Bliži se trenutak kad će promjena biti manje bolna od održavanja te skupine zakrpi na životu. Ako dopustite malo humora za kraj – ako se mogao uspješno reformirati stari britanski šašavi sustav valuta, gdje se jedna gvineja sastoji od 21 šilinga, što je istodobno jednako jednoj funti i pet penija, onda se valjda može i računanje vremena.

Atomski sat, najprecizniji sat koji poznajemo – dovoljno precizan da se varijabilno trajanje dana ponekad mora uskladiti u odnosu na njega
Atomski sat, najprecizniji sat koji poznajemo – dovoljno precizan da se varijabilno trajanje dana ponekad mora uskladiti u odnosu na njega
Već je na raspolaganju i moda koja upozorava na “problem 2038. godine”. Ima nešto zgodno i u činjenici da će se dogoditi u 3:14 sati
Već je na raspolaganju i moda koja upozorava na “problem 2038. godine”. Ima nešto zgodno i u činjenici da će se dogoditi u 3:14 sati
Bug 336 studeni 2020.