Maj. En intensiv månad. Och snart kommer flytten så det lär ju inte bli mindre intensivt. Jag hade egentligen tänkt blogga om luftfuktaren som visade sig vara mer vattenkokare än luftfuktare. Men den får jag hänga ut en annan dag. Idag hamnade vi i ett okänt fikarum, med tidningar som handlar om datorer och inte om flygplan på borden. En av tidningarna var Dr. Dobb's Journal, och när jag tog den i min hand väcktes nämligen ett gammalt minne till liv som jag vill dela med mig av!
För tio år sedan bodde jag i Costa Rica. Jag var där som utbytesstudent mellan tvåan och trean i gymnasiet. På nåt sätt hade jag kommit över ett ex av
Dr. Dobb's Journal, och just det numret handlade om
millenniebuggen. De presenterade olika lösningar på problemet, och spred lite skräck för hur jobbigt det skulle bli när alla datorer krashade om några månader.
Men! De hade ju inte tänkt på att ...Jag fick tag på en dator med internet (och det var inte det lättaste i Costa Rica år 1999!) och skrev en insändare om min iaktagelse:
A Better Date?
Dear DDJ,
Suppose I have to construct a system for storing dates. I decide to store the dates in a standard, straightforward MM/DD/YY format using digits. Never mind about binary numbers and the like, let them come later. Dates are allowed to range from 01/01/00 to 12/31/99. These ranges mean I am able to store all the dates of one century. About 37,000 dates.
This is where I thought: Wait a minute, something is wrong here -- six digits. Shouldn't that be 1,000,000 dates. Where does the other 963,000 dates hide?
The answer comes fast. MM/DD. This way of storing dates is very inefficient. Gladly, the solution comes just as fast. Here is mine: To be able to represent 23 more centuries, I allow dates to range from 01/01/00 to 96/93/99 in the following manner:
century(1,1) range from 01/01/00 to 12/31/99.
century(2,1) range from 13/01/00 to 24/31/99.
...
century(8,1) range from 85/01/00 to 96/31/99.
century(1,2) range from 01/32/00 to 12/63/99.
century(1,3) range from 01/64/00 to 12/95/99.
For example:
century(5,2) range from 49/32/00 to 60/63/99
This system makes it possible to represent in whole 24 (8×3) centuries, approximately 888,000 dates. It is not all of the possible combinations, but it is much better.
Now, as I see it, this system is far better than any of the systems I saw in the last journal. It is simple to understand. It should be possible to use it in all databases that stores dates in an MM/DD/YY form. It does not require any changes in such existing databases, and it is fully backward compatible. A date in the normal MM/DD/YY form will be the exact same date in the aforementioned system.
Torkel Danielsson
Internet är underbart - nu mer än tio år efteråt går den fortfarande att
hitta och läsa! Sen måste jag säga att jag inte skrev så taskig engelska som 19-åring faktiskt :)