Diskussion:LIP 19100
Aus UUGRN
19107[Bearbeiten]
Perl arbeitet intern also 4stellig, bietet aber einen vorsätzlich falschen (-1900) Wert für die Jahreszahl an, denn alle Welt will 2stellig arbeiten.
- Code
#! /usr/bin/perl ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); print $year."-".$mon."-".$mday."\n";
Ausgabe:
$ ./19100.pl 107-6-25
Diese Form der "Vereinfachung" führte in vielen Programmen zu Konstrukten wie
"19".$year
anstatt
1900+$year
... was wiederum oftmals zur Ausgabe von "19100" führte. Man darf sich mit gesundem Menschenverstand fragen, warum die Funktion eine semi-2stellige Jahreszahl zurückliefert, damit dann im Code außen herum die unterschlagenen 1900 Jahre wieder addiert werden können. Braindead!
--rabe 22:34, 25. Jul. 2007 (CEST)
Lesen bildet:
- Note that the $year element is not simply the last two digits of the year. If you assume it is then you create non-Y2K-compliant programs--and you wouldnât want to do that, would you?
- The proper way to get a complete 4-digit year is simply:
$year += 1900;
- And to get the last two digits of the year (e.g., â01â in 2001) do:
$year = sprintf("%02d", $year % 100);
--ph3-der-loewe 23:26, 25. Jul. 2007 (CEST)
- Danke, besser hätte ich hirnrissig auch nicht beschreiben können. Natürlich ist jedem klar, wie man es richtig macht. Aber mal ganz losgelöst von Doku, die man lesen sollte: Wenn mir eine Funktion der Programmiersprache einen Wert namens "Year" liefert, würde ich ggf mit 2007 oder 07 rechnen, aber nicht mit 107. Die Tatsache, dass man einen solchen Würgaround überhaupt braucht, weil das Ergebnis IN JEDEM FALL falsch ist, ist ein hochnotpeinlicher Bug der Programmiersprache, den man darüber hinaus auch nie wegbekommen wird, denn sonst würden alle korrekten Programme falsch reagieren.
- Natürlich ist es auch eine Frage der Qualifikation eines Entwicklers, dass der die Doku gelesen und verstanden hat und in seiner Software den richtigen Würgaround verwendet. Wer in seinen Programmen irgendwo was von 19100 als Datum bekommen hat, hat sich selbst geoutet.
- Die Tatsache, dass viele es falsch hatten und die Schadenfreude der anderen, war letztlich Namensgeber der Veranstaltung im Jahr 19100^W2000. --rabe 05:26, 28. Jul. 2007 (CEST)
- Dann stell genau dies auf der Atrikelseite klar. und erzahle nicht irgent einen misst von wegen es sei ein Bug. Da du scheinbar keine ahnung von Perl hast und auch keine ahnung haben willst hast du kein anrecht darueber zu reden ob es ein Bug ist oder nicht wenn du die hintergrunde nicht verstehst. Und das tust du nicht so wie du dich hier verhaltst. Ich erarte also eine klarstellung auf der Artikel seite. --ph3-der-loewe 23:27, 28. Jul. 2007 (CEST)
- Deine Argumentation erinnert mich an einen Redmonder Marketing-Verein: It's not a bug, it's a feature. Es fehlt mir nach wie vor ein überzeugendes Argument, warum Perl einen willkürlichen Offset von -1900 in die Jahreszahlen einrechnet. Wieso rechnen sie nicht z.B. einen Offset von -1850 oder -1234 ein? Man könnte fast glauben, dass niemand ernsthaft erwartet hat, dass man Perl noch nach den 1990er einsetzen würde (natürlich Spaß). Die ursprüngliche Motivation und plausible Erklärung für den Offset von -1900 könnte meine Meinung zu diesem Thema möglicherweise ändern, einzig fehlt mir die umfassende Weisheit, die Genialität dahinter zu erkennen. Erleuchte mich! --rabe 00:12, 29. Jul. 2007 (CEST)