1#!/usr/bin/perl -w 2 3use strict; 4 5use Test::More tests => 1112; 6 7use DateTime; 8 9{ 10 my $dt = DateTime->new( year => 0 ); 11 12 is( $dt->year, 0, 'year is 0' ); 13 is( $dt->month, 1, 'month is 1' ); 14 is( $dt->day, 1, 'day is 1' ); 15 is( $dt->day_of_week, 6, 'day of week is 6' ); 16} 17 18{ 19 my $dt = DateTime->new( year => 0, month => 12, day => 31 ); 20 21 is( $dt->year, 0, 'year is 0' ); 22 is( $dt->month, 12, 'month is 12' ); 23 is( $dt->day, 31, 'day is 31' ); 24 is( $dt->day_of_week, 7, 'day of week is 7' ); 25} 26 27{ 28 my $dt = DateTime->new( year => -1 ); 29 30 is( $dt->year, -1, 'year is -1' ); 31 is( $dt->month, 1, 'month is 1' ); 32 is( $dt->day, 1, 'day is 1' ); 33 is( $dt->day_of_week, 5, 'day of week is 5' ); 34} 35 36{ 37 my $dt = DateTime->new( year => 1 ); 38 39 is( $dt->year, 1, 'year is 1' ); 40 is( $dt->month, 1, 'month is 1' ); 41 is( $dt->day, 1, 'day is 1' ); 42 is( $dt->day_of_week, 1, 'day of week is 1' ); 43} 44 45{ 46 my $dow = 1; 47 for my $year (1, 0, -1) 48 { 49 my $days_in_year = $year ? 365 : 366; 50 51 for my $doy (reverse 1..$days_in_year) 52 { 53 is( DateTime->from_day_of_year( year => $year, 54 day_of_year => $doy, 55 )->day_of_week, 56 $dow, 57 "day of week for day $doy of year $year is $dow" ); 58 59 $dow--; 60 $dow = 7 if $dow == 0; 61 } 62 } 63} 64