if ($day eq \'\')
{
($sec,$min,$hour,$mday,$mon,$year,$wday,$isdst)=localtime(time);
$year=$year+1900;
$mon++;
}
else
{
($den,$mon,$year)=split(/\\./,$day);
}
@mond = (\'Январь\',\'Февраль\',\'Март\',\'Апрель\',\'Март\',\'Июнь\',\'Июль\',\'Август\',\'Сентябрь\',\'Окрябрь\',\'Ноябрь\',\'Декабрь\');
my $date = "$year-$mon-01";
sub dayofweek {
my @years = (0, 2, 3, 4);
my @month = (undef, 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5);
my @days = (7,1,2,3,4,5,6);
my $date = shift;
my ($yy, $mm, $dd) = split(/\\-/, $date);
$dd =~ s/^0//;
$mm =~ s/^0//;
my($tmp, $a, $b, $c, $e);
$tmp = $yy - 1996;
$a = $tmp & 3;
$b = ($tmp >> 2) + ($tmp & hex("FC"));
$c = $month[$mm];
if($a == 0 && $mm > 2){$c++;}
$a = $years[$a];
$e = ($a+$b+$c+$dd) % 7;
return $days[$e];
}
$d = dayofweek($date);
if ($mon == 1 || $mon == 3 || $mon == 5 || $mon == 7 || $mon == 8 || $mon == 10 || $mon == 12)
{
$end=31;
}
elsif ($mon == 2)
{
if ($year%4 == 0)
{
$end=29;
}
else
{
$end=28;
}
}
else
{
$end=30;
}
$m=$mon-1;
print "
$mond[$m]\\, $year года";
print "
Пн. | Вт. | Ср. | Чт. | Пт. | Сб. | Вс. |
";
$a=0;
$head="";
$foot="";
$f=-1;
for ($i=1;$i<48;$i++)
{
$b=$a+1;
####################################################################################
#####Создание ссылок в календаре
####################################################################################
$head="";
$foot="";
###################################################################################
#Отмечаем воскресенье
if ($i%7 == 0)
{
$bg="$vs";
}
else
{
$bg="$mbg";
}
#Это первые "пустые дни"
if ($i < $d)
{
print " | ";
}
#Вывод дней
if ($i >= $d)
{
$a++;
if ($a <= $end)
{
print "$head $a $foot | ";
}
}
#Проверка на последнее число
if ($a > $end)
{
if ($i%7 == 0)
{
print " |
";
last;
}
else
{
print "
| ";
}
}
if ($i%7 == 0)
{
print "
";
}
}
Переменным присваивайте такие вещи как
$head="a< href=...>";
$foot="";
Записан
« Ответ #3 : 26 Ноября 2002, 15:17:59 »
Заумно, но без модулей.
Сделано на ходу, потому могут быть ошибки...
Записан
« Ответ #4 : 26 Ноября 2002, 15:20:40 »
Будут вопросы, предложения или критика - моя аська в профайле
Записан
« Ответ #5 : 26 Ноября 2002, 21:51:42 »
Заумно, но без модулей.
Много раз уже писал - изобретение велосипеда не преследуется по закону.
А вот патент на изобретение колеса был выдан в Австралии не так давно.
Если модуль не имеет бинарной части, то даже проблем с его установкой на хостинге не будет - поставил в свою директорию и пользуйся сколько влезет.
Записан
2B OR NOT 2B = FF
« Ответ #6 : 27 Ноября 2002, 05:01:48 »
Выдает ошибку 500
Premature end of script headers: calendar.cgi
Записан
« Ответ #7 : 27 Ноября 2002, 11:42:26 »
Выдает ошибку 500
Premature end of script headers: calendar.cgi
Потому как была просто описана процедура создания ссылок. Нельзя же так тупо передирать...
Записан
[ основной браузер когда-то был, теперь попробуй разберись =]
« Ответ #8 : 27 Ноября 2002, 12:02:24 »
Я в этом чайник, помогите, что дальше!
Записан
« Ответ #9 : 27 Ноября 2002, 17:15:31 »
У меня аська есть в профайле...
И я не кусаюсь...
(хотя...)
Записан