Frage

Es gibt viele Berichte über Systeme versagen das Jahr 2010 zu verstehen, aber ich habe keine Ahnung, warum. Aktuelle Systeme Ich betreue arbeiten gut, soweit ich sagen könnte, aber ich würde gerne wissen, was das eigentliche Problem ist, besser zu suchen.

Kann jemand etwas Licht auf sie werfen bitte?

Edit: http://www.rte.ie/business/2010 /0105/bug.html - Informationen über das Kreditkarten in Deutschland

beeinflussen
War es hilfreich?

Lösung

Mehrere Protokolle in Banken und Telekommunikation - einschließlich der SMS-Protokoll - kodieren die Jahr als BCD in einem Byte.

Von 2000-2009 man leicht den Fehler zu interpretieren das Jahr als Standard binäre Zahl, da die Codierung des gleiches wäre machen könnte:

Encoding  Binary-interpreted  BCD-interpreted
0x01      2001                2001
0x02      2002                2002
...
0x09      2009                2009
0x10      2016                2010
...

Das ist höchstwahrscheinlich die Ursache für den Windows Mobile-Fehler.

Andere Tipps

Eine mögliche Erklärung ist in dem Artikel unter

http://www.theregister.co.uk/2010/ 05.01 / symantec_y2k10_bug /

  

Erinnert mich an Ihrem kürzlich erschienenen Artikel über billige und schmutzige Behebungen Y2K-Bug, wo einige skrupellosen Programmierer in einem einfachen setzen, wenn <10 = 20xx sonst das Datum ist 19xx

Assassin hatte eine Regel Daten zu weit in der Zukunft als Spam zu markieren:

/20[1-9][0-9]/

Das Update kam ein paar Tage zu spät, aber es ist ganz einfach:

/20[2-9][0-9]/

Wir sehen uns wieder in zehn Jahren.

Ich habe ein System, bei der Arbeit bekommt, das ein einstelliges Jahresfeld verwendet. Ja. Eine Ziffer. So ist der Grund, warum dieses System ausfällt, ist, dass „2000“ das gleiche ausgedrückt wird als „2010“.

Die, die ich gehört habe war quick fix Leute für Y2K haben, ohne es zu durchdenken. Also, wenn xx <10 dann 20xx sonst 19xx.

Es könnte an die jungen Entwickler zurückzuführen sein, die ihre Karriere nach Y2K und werden mit 1 Stelle repräsentieren das Jahr gestartet.

Ich kümmerte mich um ein wenig 2010 in einem Ort am vergangenen Wochenende nicht, es ist nur das Ergebnis eines Versehens war allerdings bei der Codierung.

Jemand hielt es für eine gute Idee wäre, den Wert eines Listenelements auf die aktuelle dateTime.year.Now (), wenn die Liste setzen nur Elemente bis 2009 enthalten sind.

ddlItem.findByText(DateTime.Now.Year.ToString())

Hier ist ein Screenshot des norton Symantec Endpoint Protection

alt text http://img695.imageshack.us/img695/4500/152010112800am .jpg

Wirklich schön, dass niemand @ symantec ihre Kunden informiert ... Bis der Artikel gepostet: http://www.theregister.co.uk / 2010/01/05 / symantec_y2k10_bug /

Es ist, dass es einen Fehler in einer Komponente, die das Jahr in zwei Teile teilt. Der zweite Teil in einem Vergleich verwendet wird, so dass die Ziffer 10 Basis nicht in 10, es ist in der Basis 16 bedeutet, dass es 0x10 = 16 (hex).

benutzte ich Google Code Search y2010 Fehler in Open-Source-Software zu finden. Ich suchte nach einem bestimmten Muster, das einen Fehler (Verwendung von „200% d“ als Printf) geben würde, und mehrere Projekte mit diesem Fehler gefunden. Kreative Anwendung von Suchmustern könnte wahrscheinlich auftauchen mehr verschiedene Arten von Fehlern sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top