Skudår, sommertid og tidszoner

Det står ret nonchalant:

Der er i systemets programformel simpelthen ikke taget højde for skudår. Derfor hopper systemet en dag frem eller går i kludder, når det rammer den 29. februar, siger [Lars Jacobsen].
29. februar: DSB-automater blev forvirrede (dr.dk)

Det er nu ikke helt så naturligt at begå denne fejl, i hvert fald ikke hvis man lige bruger lidt tid på at tænke på netop det, tid. Og når man arbejder med laver et billetsystem er man nød til at tænke på tid.

Problemerne opstår hyppigt omkring skift af tidszoner, sommertid og skudår.

Den første løsning er generelt at arbejde i tidsforskelle og først i interaktion med brugerne at konvertere dette til datoer. Det kan man naturligvis ikke hvis man arbejder med kalendermåneder – hvilken dag er præcist en måned efter d. 30. januar? – men det er undtagelsen.

Arbejder man med tidspunkter på dagen er man dog nød til at forholde til sommertid. To gange om året sker der det at tiden mellem kl. 2 og 3 opfører sig anderledes. Den ene gang springes hele timen over – og så giver det ikke meget mening at sige at noget starter kl. 2:45 – og den anden gang optræder timen to gange. Der kan det være katastrofalt at sætte for eksempel et computerprogram til at starte i det tidsrum. Det kan blive startet to gange.

Hvis man skal udvikle en løsning der skal gælde samtidigt på tværs af tidszoner så viser det sig igen at man er nød til at arbejde med tidsforskelle, ligesom Unix timestamps. Og så først til allersidst, i interaktion med brugeren anvende den lokale tid.

Dette indlæg blev udgivet i Udvikling og tagget , , . Bogmærk permalinket.

Skriv et svar

Udfyld dine oplysninger nedenfor eller klik på et ikon for at logge ind:

WordPress.com Logo

Du kommenterer med din WordPress.com konto. Log Out / Skift )

Twitter picture

Du kommenterer med din Twitter konto. Log Out / Skift )

Facebook photo

Du kommenterer med din Facebook konto. Log Out / Skift )

Google+ photo

Du kommenterer med din Google+ konto. Log Out / Skift )

Connecting to %s