mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-01 01:09:47 +00:00
90_at.pm: Fix sommertime-change issues (Forum #35586)
git-svn-id: https://svn.fhem.de/fhem/trunk@8326 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
472fe8441d
commit
9a57b5dd6e
@ -23,27 +23,22 @@ at_Initialize($)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
my $at_stt_sec;
|
my %at_stt;
|
||||||
my $at_stt_day;
|
|
||||||
my $at_detailFnCalled;
|
my $at_detailFnCalled;
|
||||||
|
|
||||||
sub
|
sub
|
||||||
at_SecondsTillTomorrow($) # 86400, if tomorrow is no DST change
|
at_SecondsTillTomorrow($) # 86400, if tomorrow is no DST change
|
||||||
{
|
{
|
||||||
my $t = shift;
|
my $t = shift;
|
||||||
my $day = int($t/86400);
|
my $dayHour = int($t/3600);
|
||||||
|
|
||||||
if(!$at_stt_day || $day != $at_stt_day) {
|
if(!$at_stt{$dayHour}) {
|
||||||
my $t = $day*86400+12*3600;
|
|
||||||
my @l1 = localtime($t);
|
my @l1 = localtime($t);
|
||||||
my @l2 = localtime($t+86400);
|
my @l2 = localtime($t+86400);
|
||||||
$at_stt_sec = 86400+
|
$at_stt{$dayHour} = 86400+($l1[2]-$l2[2])*3600;
|
||||||
($l1[2]-$l2[2])*3600+
|
|
||||||
($l1[1]-$l2[1])*60;
|
|
||||||
$at_stt_day = $day;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $at_stt_sec;
|
return $at_stt{$dayHour};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -85,7 +80,7 @@ at_Define($$)
|
|||||||
$nt -= ($lt[2]*3600+$lt[1]*60+$lt[0]) # Midnight for absolute time
|
$nt -= ($lt[2]*3600+$lt[1]*60+$lt[0]) # Midnight for absolute time
|
||||||
if($rel ne "+");
|
if($rel ne "+");
|
||||||
$nt += ($hr*3600+$min*60+$sec); # Plus relative time
|
$nt += ($hr*3600+$min*60+$sec); # Plus relative time
|
||||||
$nt += at_SecondsTillTomorrow($ot) if($ot >= $nt); # Do it tomorrow...
|
$nt += at_SecondsTillTomorrow($nt) if($ot >= $nt); # Do it tomorrow...
|
||||||
@lt = localtime($nt);
|
@lt = localtime($nt);
|
||||||
my $ntm = sprintf("%02d:%02d:%02d", $lt[2], $lt[1], $lt[0]);
|
my $ntm = sprintf("%02d:%02d:%02d", $lt[2], $lt[1], $lt[0]);
|
||||||
if($rep) { # Setting the number of repetitions
|
if($rep) { # Setting the number of repetitions
|
||||||
|
Loading…
Reference in New Issue
Block a user