Basically, anything that you might want to replace with a textual description(month, day of week, is there anyone else?) is 0 based, all the others are what they are supposed to be...
This is so that you can say:
my @days=qw(Mon Tue Wed Thu Fri Sat Sun);
my $day=$days[(localtime())[6];