Was soll denn nun das wieder sein ?
Also, es gibt z.B. in der Programmiersprache C eine Zeit-Funktion, die die Sekunden zurückgibt, die seit 1.1.1970 0:00 Uhr vergangen sind.
Was passiert dann ?
Also, sehr treffend hat das Helmut
Giese formuliert:
"Was wird dann passieren? Schwer zu sagen. In 10 - 20 Jahren werden
wir vielleicht 64 Bit große ints und 256 Bit große longs haben -
und der Rechner wird eine Verdickung im Verbindungskabel zwischen Tastatur und
Bildschirm sein."
Auf jeden fall haben wir ja noch einige Jährchen bis dahin. Ich bin dann
63, und freue mich schon, wenn so mancher PC oder wie die Dinger dann heissen
den Geist aufgibt. Wie man weiss, wird ja neue Software doch immer nur auf alter
Software aufgesetzt.
Was tun wir jetzt schon dagegen ?
Was ich persönlich schön finde ist, dass sich manche Programmierer heute schon etwas dazu denken und solche Fehlermeldungen produzieren:
Aber viele Programme stürzen einfach ab oder aber erzeugen lustige Sachen:
Probier es doch selbst, stell die Uhr auf das Jahr 2040 und teste dein Lieblingsprogramm mal (auf eigene Gefahr). Jawohl mein Solangesindwirschonzusammencounter funktioniert noch länger (zumindest im Internet Explorer) !
Was sagt Microsoft dazu ?
BUG: Visual C++ Gives GP Fault If System Date Past 18-Jan-2038 Last reviewed: January
18, 1996 |
The information in this
article applies to:
When the system clock is set to any date/time after January 18, 2038 at 19:14:07, loading the Visual C++ development environment fails with an application error or general protection (GP) fault and execution terminates. CAUSEThe C Run-time (CRT) has a limitation with the time/date functions. Time is measured in seconds from Jan 1, 1970. This value is a 32-bit signed integer, so it has a maximum date of Jan 18, 2038 19:14:07 or 2^31 seconds (2,147,483,648 seconds) from Jan 1, 1970 00:00:00. Because the development environment depends on time/date routines from the CRT, the time functions will fail and cause the error. RESOLUTIONMake sure that the system date is set correctly before January 18, 2038. STATUSMicrosoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.
|
Additional reference words: 2.00 2.10 GPF noupdate |
Der Jahr 30828 - Bug ?
Jetzt lass mich doch endlich in Ruhe !! Was´n da los ?
Es gibt folgende perverse Datenstruktur, die dazu verwendet wird das Datum einer Datei abzuspeichern:
The FILETIME structure holds a date and time associated with a file. The structure identifies a 64-bit integer specifying the number of 100 nanosecondintervals which have passed since January 1, 1601. This 64-bit value is split into the two dwords stored in the structure.
Natürlich braucht man diese Funktion! Wie hätte sonst
Ihr Ur-ur-ur-ur-ur-ur-Großvater eine Datei anlegen sollen!
Aber es ist beruhigend zu wissen, wann genau eine Datei abgespeichert
wurde. Diese Webseite z.B. wurde am 31.1.2002 um 14:51:30 und 234 tausendstel-sekunden
und 455,3 millionstelsekunden abgespeichert.
Wann ist das Ablaufdatum dieser structure ?
64Bit-integer bedeutet diese Zahl geht bis 2^64 |
das ist 18.446.744.073.709.551.616
|
Da die Struktur sicher eine signed-integer ist (auch ins negative geht) dividiert durch 2 |
das ist 9.223.372.036.854.775.808
|
1 entspricht 0,1 µs daher dividiert durch 10 |
das ist 922.337.203.685.477.580
|
1s = 1.000.000 µs daher dividiert durch 1.000.000 |
das ist 922.337.203.685
|
1 Tag hat 24x3600 Sekunden |
das ist 10.675.199
|
1 Jahr hat durchschnittlich 365,25 Tage |
das ist 29.227
|
+ 1601 Jahre dazu |
das ist 30.828
|
also deshalb heisst es Jahr 30828-Bug !