Разработка сайтов и программного обеспечения, системное администрирование, обучение программированию и работе с СУБД MySQL

in english

Календарь на Perl

Главная Статьи Календарь на Perl

Для работы потребовался список недель, долго думал, как же его организовать и в итоге получился простенький календарик

#!/usr/bin/perl

use CGI::Carp qw(fatalsToBrowser);

use Time::Local;

print "Content-type: text/htmlnn";

my @months = ('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');

my $dt = time;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

$dt = timelocal(0,0,0,1,0,$year);
my $i=0;
my $m=1;
my $w=1;
my $month_changed=0;
my $day_color='white';
print '<table cellspacing=0 border=0 ><tr>';
for ($i= 0; $i<365+(($year%4 == 0)?1:0); $i++)
{
	($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($dt+$i*86400);
	if ($mon != $m) {
		$m=$mon;
		$month_changed=1;
		if ($m % 2 == 0) {
			$day_color='#f0f0f0';
		}
		else {
			$day_color='white';
		}
	}
	if ($i == 0) {
		print '</tr><tr><td style="background-color: '.$day_color.'"><input type="checkbox" id="wid_'.($w).'"></td>';
		for (my $t=1;$t<$wday;$t++)    { print '<td style="background-color: '.$day_color.'">&nbsp;</td>';}
	}
	print '<td style="background-color: '.$day_color.';text-align: right"><label for="wid_'.($w).'">'.$mday.'</label></td>';
	if($wday == 0) {
		if ($month_changed eq 1)  {$month_changed=0; print '<td><b>  '.@months[$mon].'</b></td>';};
		$w++;
		print '</tr><tr><td style="background-color: '.$day_color.'"><input type="checkbox" id="wid_'.($w).'"></td>';
	}
}
print '</table>';

Реклама:

Метки: perl, календарь.

Комментарии:

Maxim:
Очень иронично смотрятся вместе ссылка на "Шаблонизатор в CTPP2" в "Других материалах" и print'ы html'а в коде... =)
zoonman:
Календарик появился до статьи про шаблонизатор.
имя:

e-mail (не публикуется):

комментарий:

© Ткачев Филипп, 2005—2017
Программист, веб-разработка и прикладное ПО.
Все права защищены.