my $days = Delta_Days($1,$2,$3,$4,$5,$6);
my $firstday = Date::Calc->new($1,$2,$3);
my $lastday = Date::Calc->new($4,$5,$6);
- my $today = Date::Calc->today;
+ my $today = Date::Calc->new(Date::Calc->localtime(time+3600*6)->date);
my @days=();
foreach(split(" ",$class{'days'})) {
push @days, Decode_Day_of_Week($_);
next if(grep($_ == $today, @off));
return $today;
}
- $today = Date::Calc->today;
+ $today = Date::Calc->new(Date::Calc->gmtime->date);
for($today = ($today < $lastday ? $today : $lastday); $today > $firstday; $today--) {
next unless(grep($_ == Day_of_Week($today->date), @days));
next if(grep($_ == $today, @off));
$days[Decode_Day_of_Week($_)] = 1;
}
foreach ($year->search("")) {
- next unless ($year->is_full($_) && $_>=$firstday && $_<=$lastday);
- if (defined($days[Day_of_Week($_->date)])) {
- push @holidays, $_;
+ my $good=1;
+ foreach my $x ($year->labels($_)) {
+ $good=0 if $x =~ /Veteran/;
+ $good=2 if $x =~ /Thanksgiving/;
}
+ next unless ($year->is_full($_) && $_>=$firstday && $_<=$lastday);
+ push @holidays, $_
+ if (defined($days[Day_of_Week($_->date)]) && $good);
+ push @holidays, $_+1
+ if (defined($days[5]) && $good==2);
}
return wantarray ? @holidays : "@holidays";
}
} elsif($time =~ /$ending/) {
return $lastday-5;
}
- } else {
- return wantarray ? () : "";
}
+ return wantarray ? () : "";
}
sub capitalize {
s/\bComp\b/Composition/g;
s/\bFed\b/Federal/g;
s/\bGen\b/General/g;
+ s/\bIntro\b/Introduction/g;
#s/\bGovt\b/Government/g;
s/\bLit\b/Literature/g;
s/\bPrin\b/Principles/g;
foreach my $row ($ts->rows) {
map { s/\xa0//g; $_} @$row;
$row->[0] =~ s/.*launchWebCT\("([^"]*)"\).*/$1/s;
- $row->[0] =~ s/(.*) <BR>(.*)/capitalize($2)/eg;
+ $row->[0] =~ s/(.*) ?<[Bb][Rr][^>]*>(.*)/capitalize($2)/eg;
$classid=$1;
$row->[2] = capitalize($row->[2]);
$row->[2] =~ s/([A-Z]r?)$/$1./;
($begin, $end) = split("-", $row->[7]);
if($row->[7] =~ /^(\d\d):\d\d-(\d\d):\d\dPM$/) {
- $begin =~ s/^(\d\d)/$1+12/e
- if($1 < $2);
- $end =~ s/^(\d\d)/$1+12/e;
+ if($1 < $2 && $2 != 12) {
+ $begin =~ s/^(\d\d)/$1+12/e;
+ }
+ if($2 != 12) {
+ $end =~ s/^(\d\d)/$1+12/e;
+ }
$end =~ s/PM$//;
} else { $end =~ s/AM$//; }
$row->[8] =~ s/(\d\d)-(\d\d)-(\d\d)/20$3$1$2/g;
- $row->[9] =~ s/ON CAMPUS\n//g;
+ $row->[9] =~ s/(ON|MAIN) CAMPUS\n//ig;
$row->[9] =~ s/\n/ /g;
push @schedule, {
id => $classid,
while($_ = <INS>) {
chomp;
m/"([^"]*)",([^,]*),([^,]*)/;
- ($name, $school, $email) = ($1, $2, $3);
+ ($name, $email, $school) = ($1, $2, $3);
$name =~ s/^([^,]*), ([^,]*)(.*)$/$2 $1$3/;
$name =~ s/ [A-Z]\.//g;
$name = lc $name;
foreach (@mhc) {
$_ =~ s/X-SC-Subject: ([^\n]*)/X-SC-Subject: $1\nSubject: $1/;
$_ =~ s/X-SC-Category: ([^\n]*)/X-SC-Category: $1\nFrom: $1/;
- $_ =~ s/X-SC-Duration: (\d\d\d\d)(\d\d)(\d\d)-/"X-SC-Duration: $1$2$3-\nDate: $3 " . $mon[$2-1] . " 2037 12:00:00 +0000"/e;
+ $_ =~ s/X-SC-Duration: (\d\d\d\d)(\d\d)(\d\d)-/"X-SC-Duration: $1$2$3-\nDate: $3 " . $mon[$2-1] . " $1 12:00:00 +0000"/e;
push @mhc2, $_;
}
@mhc = @mhc2;
if(defined($file) && (-d $file)) {
$row->{'instructor'} =~ s/^([^,]*), ([^,]*)(.*)/$2 $1$3/;
my $email = get_faculty_email $row->{'instructor'};
- $row->{'instructor'} = '"' . $row->{'instructor'} . '" <'. ($email || "$1\@from.sctweb") . ">";
+ $row->{'instructor'} = '"' . $row->{'instructor'} . '" <'. ($email || ($1 || "unknown") . "\@from.sctweb") . ">";
$row->{'duration'} =~ /^(\d\d\d\d)(\d\d)(\d\d)-\d{8}$/;
$row->{'begin'} =~ /^(\d\d):(\d\d)$/;
my $next = next_class(%$row);
map { s/[\r\n]//g; $_} @$row;
$row->[0] = capitalize($row->[0]);
$row->[0] =~ s/([A-Z]r?)$/$1./;
- print '"'.$row->[0].'",',$row->[1].',', $row->[2], "\n";
+ print '"'.$row->[0].'",',$row->[2].',', $row->[1], "\n";
}
}
}