Spookprobleem | Computable.nl
Spookprobleem
19 augustus 2005 00:00 | Kees Dekker
Programma's halen datum en tijd niet in twee afzonderlijke stappen op, schrijft Kees Dekker. Het spookuurprobleem lijkt dus niet te bestaan.
Bestaat het spookuurprobleem of is het een marketingstunt, vraagt 'Is het spookuur spookhandel?' (Computable, 5 augustus 2005). Het spookuurprobleem speelt volgens sommige deskundigen bij programma's die datum en tijd afzonderlijk ophalen. Daardoor zouden verwerkingsfouten kunnen ontstaan; de verwerking lijkt dan 24 uur eerder of later te zijn uitgevoerd dan hij is gedaan.
In de praktijk halen (moderne) applicaties datum en tijd met een (systeem)functie op. Datum en tijd zijn doorgaans verwerkt in een getal, bijvoorbeeld utc-tijd (het aantal verstreken seconden sinds 1 januari 1970). Ook andere getallen die het aantal verstreken seconden, minuten of iets dergelijks weergeven zijn bruikbaar. Zo'n getal verwijst naar zowel de tijd als de datum. Datum en tijd worden dus niet in twee stappen opgehaald.
Een database als MySQL werkt niet met utc-tijden, maar met een ander getal, om data vanaf 1753 te kunnen opslaan. Het principe van 'één getal bepaalt zowel datum als tijd' geldt echter ook daar. Het zijn knappe lui bij Cornerstone als ze daar geld mee weten te verdienen. Overigens lijkt Cornerstone zich vooral op Cobol te richten. Mijn expertise ligt meer op het gebied van C en C++. De functies voor het gebruik van utc-tijden zitten in die talen in de standaardbibliotheken. Ik weet niet of dat het geval is bij Cobol, maar aangezien deze taal veel in het bankwezen gebruikt wordt, lijkt me dat wel logisch (utc-tijden rekenen ook zo lekker makkelijk omdat het maar één getalletje is).