3 ################################################################################
5 # File: shared/Time/German.pm #
7 # Authors: André Malo <nd@o3media.de> #
9 # Description: determine time offset German Time <=> GMT (seconds) #
11 ################################################################################
19 ################################################################################
27 sub VERSION
{(q
$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
29 ################################################################################
34 @EXPORT_OK = qw(localtime);
35 %EXPORT_TAGS = (overwrite_internal_localtime
=> 'localtime'); # ;-)) Thanks to Calocybe
37 ################################################################################
39 # german summertime 1980-1995 (ydays)
60 ### localtime () ###############################################################
62 # like 'localtime', but system independent
64 # Params: $time - time since epoch (GMT)
66 # Return: same as localtime, but german time ;-)
70 $time = time unless defined $time;
72 my ($hour,$mday,$mon,$year,$wday,$yday) = (gmtime($time))[qw(2 3 4 5 6 7)];
77 if ($summertime{$year}) {
80 $yday > $summertime{$year} -> [0] and
81 $yday < $summertime{$year} -> [1]
84 $yday == $summertime{$year} -> [0] and
88 $yday == $summertime{$year} -> [1] and
97 # determine last Sunday in March or October
99 my $limit = $mday + int((31-$mday)/7) * 7 - $wday if ($mon == 2 or $mon == 9);
125 return gmtime($time + $offset * 3600);
128 # keep 'require' happy
133 ### end of Time::German ########################################################