$day=&getDayBySec(<секунды>); # секунды от 1 января 1970 годаsub getDayBySec
{
my @list_day=("четверг","пятница","суббота","воскресенье","понедельник","вторник","среда");
my $realDay="";
my @text=Sec_to_Date($_[0]);
my $cur_sec=$_[0];
my $all_days=int($cur_sec/86400); if ($cur_sec├400) { $all_days++ }
if ($all_days%7)
{
$realDay=$list_day[($all_days-((int($all_days/7))*7))-1];
} else { $realDay=$list_day[-1] }
return $realDay;
}
Если захочешь, то поймешь что к чему. В секунды преобразовать тоже просто:
sub Date_to_Sec # $resultSec=&Date_to_Sec(ДД, ММ, ГГГГ, ЧЧ, ММ, СС); $resultSec=&Date_to_Sec(25,11,2008,1,47,58);
{
my $startDateDay = 1;
my $startDateMonth = 1;
my $startDateYear = 1970;
my @daysAtMonth=(31,28,31,30,31,30,31,31,30,31,30,31);
my ($rD, $rM, $rY, $vY, $fY, $secD, $secM, $secY, $secH, $secM, $secS, $iM, $all_time_sec, $tmpDays, $all_date_sec) = 0;
my ($isLeap) = false;
if ($_[0] eq "" || $_[0]!~/\d/) { return }
if ($_[1] eq "" || $_[1]!~/\d/) { return }
if ($_[2] eq "" || $_[2]!~/\d/ || length($_[2])!=4) { return }
if ($_[3] ne "" && $_[3]!~/\d/) { return }
if ($_[4] ne "" && $_[4]!~/\d/) { return }
if ($_[5] ne "" && $_[5]!~/\d/) { return }
$rD = $_[0] - $startDateDay; $rM = $_[1] - $startDateMonth; $rY = $_[2] - $startDateYear;
$vY = int ($rY / 4);
if (($_[2] % 4) > 0) { $isLeap = false } else { $isLeap = true; $daysAtMonth[1]=29 }
$fY = $rY - $vY; $secY = (($vY*366) + ($fY*365)) * 86400;
$secD = $rD * 86400; for ($iM=0;$iM<$rM;$iM++) { $tmpDays+=$daysAtMonth[$iM] }
$secM = $tmpDays* 86400; $all_date_sec = $secD + $secM + $secY; $secH = $_[3] * 3600;
$secM = $_[4] * 60; $secS = $_[5]; $all_time_sec = $secH + $secM + $secS;
return $all_time_sec + $all_date_sec;
}