|
Lines 704-719
Link Here
|
| 704 |
|
704 |
|
| 705 |
my $self = shift or undef; |
705 |
my $self = shift or undef; |
| 706 |
|
706 |
|
| 707 |
my ($min, $hour, $isdst) = (localtime(time))[1,2,-1]; |
707 |
my $now = time; |
| 708 |
my ($gmin, $ghour, $gsdst) = (gmtime(time))[1,2, -1]; |
708 |
my ($min, $hour, $isdst) = (localtime($now))[1,2,-1]; |
|
|
709 |
my ($gmin, $ghour, $gsdst) = (gmtime($now))[1,2, -1]; |
| 709 |
|
710 |
|
| 710 |
my $diffhour = $hour - $ghour; |
711 |
my $diffmin = ($hour - $ghour) * 60 + ($min - $gmin); |
| 711 |
$diffhour = 12 - $diffhour if $diffhour > 12; |
712 |
my $diffhour = int($diffmin / 60); |
| 712 |
$diffhour = 12 + $diffhour if $diffhour < -12; |
713 |
$diffmin -= $diffhour * 60; |
|
|
714 |
if ($diffhour > 12) { |
| 715 |
$diffhour -= 24; |
| 716 |
if ($diffmin) { |
| 717 |
$diffhour += 1; |
| 718 |
$diffmin -= 60; |
| 719 |
} |
| 720 |
} elsif ($diffhour < -12) { |
| 721 |
$diffhour += 24; |
| 722 |
if ($diffmin) { |
| 723 |
$diffhour -= 1; |
| 724 |
$diffmin += 60; |
| 725 |
} |
| 726 |
} |
| 727 |
$diffmin = abs($diffmin); |
| 713 |
|
728 |
|
| 714 |
($diffhour = sprintf("%03d", $hour - $ghour)) =~ s/^0/\+/; |
729 |
($diffhour = sprintf("%03d%02d", $diffhour, $diffmin)) =~ s/^0/\+/; |
| 715 |
|
730 |
|
| 716 |
return $diffhour . sprintf("%02d", $min - $gmin); |
731 |
return $diffhour; |
| 717 |
|
732 |
|
| 718 |
}; |
733 |
}; |