Hallo,
ich habe hier ein script wo ich echt erstaunt war, als ich gesehen habe wieviel code ich da geschrieben habe.
Deshalb meine Frage ob das vielleicht auch mit weniger code geht (außer natürlich die variablennamen abzukürzen).
Worum geht es eigentlich in diesem script:
Ich habe das Datum ($datum) und die Uhrzeit ($zeit).
Wenn Winterzeit ist möchte ich 1 Stunde dazuzählen.
Wenn Sommerzeit ist möchte ich 2 Stunden dazuzählen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl -w
use Time::Local;
my $datum="2006/02/09";
my $zeit="19:02:01";
my ($GMT_Sekunden,$GMT_Minuten,$GMT_Stunden,$GMT_Monatstag,$GMT_Monat,$GMT_Jahr,$GMT_Wochentag,$GMT_Jahrestag,$GMT_Jahreszeit) = gmtime(time);
if ($GMT_Jahreszeit eq 1) {$GMTzuLOCALsekunden = 3600;} else {$GMTzuLOCALsekunden = 7200;}
print "$GMT_Stunden, $GMTzuLOCALsekunden\n";
my ($stats_jahr,$stats_monat,$stats_tag) = (split(/\//,$datum))[0,1,2];
my ($stats_stunden,$stats_minuten,$stats_sekunden) = (split(/:/,$zeit))[0,1,2];
my $stats_unixtime = timelocal($stats_sekunden,$stats_minuten,$stats_stunden,$stats_tag, $stats_monat, $stats_jahr);
$stats_unixtime=$stats_unixtime+$GMTzuLOCALsekunden;
my ($new_stats_sekunden,$new_stats_minuten,$new_stats_stunden,$new_stats_tag,$new_stats_monat,$new_stats_jahr,$a,$b,$c) = gmtime($stats_unixtime);
$new_stats_jahr+=1900;
$new_stats_monat = '0'.$new_stats_monat if $new_stats_monat<10;
$new_stats_tag = '0'.$new_stats_tag if $new_stats_tag<10;
$new_stats_stunden = '0'.$new_stats_stunden if $new_stats_stunden<10;
$new_stats_minuten = '0'.$new_stats_minuten if $new_stats_minuten<10;
$new_stats_sekunden = '0'.$new_stats_sekunden if $new_stats_sekunden<10;
print "$new_stats_tag,$new_stats_monat,$new_stats_jahr $new_stats_stunden:$new_stats_minuten:$new_stats_sekunden\n";
Vielen Dank schon mal im Voraus. Ich bin mir sicher das geht auch viel einfacher, jedoch habe ich im Internet nicht wirklich etwas gefunden.
Grüße
Christoph