Calocybe: 9.9.99 ---» Probleme verursacht?

Beitrag lesen

Hallo Stefan!

Denk einfach mal ein bischen aus Programmierersicht: selbst wenn jemand die 9er-Belegung in Datumsfeldern als Flag fuer Programmabbruch wegen Fehler oder dergleichen vorgesehen hat: dann wuerde es mit Sicherheit nicht die Belegung "9.9.99" sein, sondern die Belegung "99.99.99" - denn schliesslich sind tt und mm 2stellige Felder.

Das klingt schon logisch. Man kann aber auch sagen, es ist voellig sinnlos, die Jahrhundertangabe wegzulassen, um Speicherplatz zu sparen (ich rede jetzt mal nicht von Cobol, wo das offenbar durch die Sprache vorgegeben ist, sondern nur von C). Kein vernuenftiger Programmierer wuerde auf die Idee kommen, ein Datum im Format YYMMDD oder so aehnlich *im Klartext*, also als ASCII-Zeichen zu speichern. Selbstverstaendlich wuerde man so etwas binaer speichern. Dann kann man naemlich 5 Bit fuer die Datumszahl reservieren und 4 Bit fuer die Monatszahl. Wenn man dann doch noch etwas verschwenderisch ist und alles in 32-Bit packt, bleiben 23 Bit fuer die Jahreszahl uebrig. Und mit 23 Bit lassen sich Zahlen bis ueber 8 Millionen darstellen. Und dann hat man trotzdem noch 2 Byte gespart (gegenueber den 6 Byte von YYMMDD).

Soweit die Theorie. Doch in der Praxis kann man nicht davon ausgehen, dass ein Programmierer vernuenftig ist. Meine Kollegen haben solche Source-Code-Scans gemacht, um Y2k-schwache Stellen zu finden. Und sie sagen: Wirklich jede Peinlichkeit, die man sich vorstellen kann, haben sich die Programmierer damals geleistet! Da erscheint die Sache mit zwei Stellen einsparen noch richtig vernueftig. In der Theorie hast Du vielleicht recht, aber keiner hat gesagt, dass diese "Programmierer" ihr Fach verstanden haben.

Calocybe