Diskussion:LIP 19100: Unterschied zwischen den Versionen
Aus UUGRN
Rabe (Diskussion | Beiträge) (Wirrungen von Perl) |
(→19107: Lesen Bildet) |
||
Zeile 19: | Zeile 19: | ||
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! | 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! | ||
--[[Benutzer:Rabe|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: | |||
--[[Benutzer: | $year += 1900; | ||
And to get the last two digits of the year (e.g., â01â in 2001) do: | |||
$year = sprintf("%02d", $year % 100); | |||
--[[Benutzer:Ph3-der-loewe|ph3-der-loewe]] 23:26, 25. Jul. 2007 (CEST) |
Version vom 25. Juli 2007, 21:26 Uhr
19107
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)