BEDRIFTSTEKNOLOGI

Digitale mandager

År 2000-problemet er bare en del av et større IT-problem som skyldes at tall blir representert med et gitt antall sifre som senere viser seg ikke å strekke til. Det er en rekke slike datoer som IT-folk må vokte seg for.

Jens Kanden
24. apr. 1998 - 08:12

År 2000 problematikken er en del av et større problem - at tall blir representert i et fast format som senere "flyter over;" man har rett og slett ikke allokert tilstrekkelig antall sifre til å representere tallinformasjon. Problemet er ikke unikt for årstall.

I USA oppsto problemet i sin tid da de første lønnsinntektene oversteg $99.999 (5 siffer). Mange lønnssystemer hadde rett og slett ikke nok sifre til å takle en six figure salary ($100.000 - 6 siffer).

Det oppstod også et problem i USA den gang bensinprisen brøt 1-dollargrensen. Frem til oljekrisen tidlig i 70-årene - oops 1970-årene - var prisen for en gallon bensin oppgitt i cent og representert med to siffer. Bensinpriser på $1,00 ble til 00; $1,01 til 01 osv. Greit for kunden, men ikke for selger.

Telefonnummer - ikke minst retningsnummer, og personnummer (social security number), er andre viktige tall som er representert i et fast format som har eller kommer til å "flyte over."

Det ventes også med spenning på den dagen Dow Jones-indeksen går over 9999 punkter, noe som kan skape uventede problemer i enkelte sammenhenger.

Også GPS-satellitter (Global Positioning System) får problemer etter rundt 20 års drift. Satellittenes "dato-depoter" lagrer tiden i 1023 uker før de "flyter over" og nullstilles eller stilles til det valgte utgangstidspunktet. Dette vil inntreffe midnatt 21. august 1999.

Datoer er gjerne representert på én av to måter i datasystemer. Enten ved konvensjonelle datoformat som dag/måned/år eller som antall sekunder fra et valgt punkt i tid.

I 1950- og 1960-årene var datalagring særdeles dyrt så oppdragsgivere og IT-sjefer forlangte nøysomhet med bruk av plass. Derfor var det nesten allmenn praksis å lagre årstall med to siffer, og dette ble sogar en standard i det amerikanske militæret og hos myndighetene i sin tid.

Også ved den andre metoden for tidsrepresentasjon - akkumulering av sekunder fra et tilfeldig startpunkt - ble det satt av begrenset plass - typisk fire byte. Denne metoden for tidspresentasjonen vil nullstilles eller settes til starttidspunktet når den "flyter over."

1. januar 1999 begynner innføringen av Euroen, et kjempeprosjekt som vanskeliggjøres fordi det overlapper med år 2000-problemet. Til sammen vil disse to prosjektene beskjeftige en uforholdsmessig stor andel av konsulenter og programvarefolk - og likevel vil problemene ikke bli løst i tide. Det sier seg selv at andre programvareprosjekter vil bli kraftig forsinket eller umuliggjort.

Skuddårsdagen - 29. februar år 2000 - er et problem fordi skuddårsreglene er litt obskure. År som er delelig med fire er normalt skuddår. Unntaket er år som er delelig med 100 - de er ikke skuddår. Unntaket fra dét er at år som er delelig med 400 likevel er skuddår, fordi man må kompensere fordi et solår ikke er nøyaktig lik 365,25 dager.

Selv om det nå er viden kjent at år 2000 er et skuddår, er det ikke opplagt at alle systemer utviklet i 1950-, -60- eller -70-årene har tatt høyde for det. Disse vil kunne lage kaos den 29. februar 2000.

Et annet problem som kan komplisere år 2000-problematikken er det faktum at USA representerer tall i formatet mmddåååå (dagens data representeres som 04241998), mens Europa representerer tall i formatet ddmmåå (24041998).

ISO standard 8601:1988 (E) representerer tall i formatet: ååååmmdd slik at 31. desember 1999 blir representert som 19991231 og 1. januar 2000 som 20000101. Enighet om bruk av dette datoformat ville redusere mulige misforståelser.

Et helt annet datoproblem vil dukke opp den 9. september 1999. Programmer trenger en metode for å indikere slutten på filer (end of file). Ofte ble tallet 9999 brukt fordi det ikke var regnet som en mulig gyldig verdi for en dato. Dog, i noen applikasjoner, viser det seg at datoen 9. september 1999 (9/9/99) blir tolket som 9999 og derved kan gi feil og uforutsibare resultater.

I enkelte Unix-applikasjoner er 999.999.999 blitt brukt som end of file-indikator, og i Unix er dette datoen 8. september 2001.

2.147.483.647 sekunder etter 1. januar 1970 - den 19. januar 2038 klokken 03:14:07 - "flyter" det fire byte store (fire siffer) datofeltet i Unix og C-bibilioteket over. Unix holder nemlig greie på tiden som antall sekunder etter 1. januar 1970. Unix-problemet skyldes - som år 2000-problemet - plassmangel; ytterligere to sifre ville gitt flere tusen års "varighet" på datofeltet i Unix.

Dette siste problem kan synes vel fjernt, men husk at det er samme tankegodset som har gitt oss år 2000-problemene.

Tabell over spesielle IT-datoer:

Når Hva
1. jan 1999 Euroen trer i kraft
21. aug 1999 GPS flyter over
9. sep 1999 End of file-problem
8. sep 2001 End of file Unix-problem
1. jan 2000 År 2000-problemet
29. feb 2000 Skuddår
19. jan 2038 Unix/C-dato løper ut

(Kilde: year2000.com)

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.