Date-EzDate

 view release on metacpan or  search on metacpan

t/test.t  view on Meta::CPAN

	
	$name = 'June 30, 2002 12:05:07 Pm';
	$date = Date::EzDate->new($name);
	$date->{'%h'} = 'JANUARY';   # %h'} = 'monthshort';
	$date->{'%d'} = 31;          # %d'} = 'dayofmonth';
	$date->{'%b'} = '01';        # %b'} = 'ampmhournozero';
	$date->{'%p'} = 'AM';        # %p'} = 'ampmlc';
	check_all($date, $name);
	
	$name = 'August 1, 2002 11:05:07 Am';
	$date = Date::EzDate->new($name);
	$date->{'%B'} = '01';       # hournozero
	$date->{'%e'} = '01';       # monthnumbase1nozero
	$date->{'%f'} = '031';      # dayofmonthnozero
	check_all($date, $name);
	
	$name = 'January 01, 2002 1:05:07 am';
	$date = Date::EzDate->new($name);
	$date->{'%j'} = '031';  # yeardaybase1
	check_all($date, $name);
	
	$name = 'July 31, 2012 10:05:07 am';
	$date = Date::EzDate->new($name);
	$date->{'%y'} = '2002';   # %y'} = 'yeartwodigits';
	$date->{'%m'} = '01';     # monthnumbase1
	$date->{'%k'} = '01';     # ampmhour
	$date->{'%w'} = '04';     # weekdaynum
	check_all($date, $name);
	
	$name = 'January 30, 2002 1:05:07 am';
	$date = Date::EzDate->new($name);
	$date->{'%a'} = 'THURSDAY';     # weekdayshort
	check_all($date, $name);
	
	$name = 'January 30, 2002 1:05:07 am';
	$date = Date::EzDate->new($name);
	$date->{'%A'} = 'THUR';     # weekdaylong
	check_all($date, $name);
	
	# removing this test: it assumes a particular
	# epoch second which may not be valid on the
	# specific system on which these tests are run.
	# 
	# January 31, 2002 1:05:07 am Thu
	#$date = Date::EzDate->new('July 31, 2012 10:05:07 am');
	#$date->{'%s'} = 1012457107;     # epochsec
	#check_all($date);
};
#
# set properties
#------------------------------------------------------



#------------------------------------------------------
# check epoch days around the epoch
#
do {
	my (@timevalues);
	my $name = 'check epoch days around the epoch';
	my $iterations = 10;
	
	# check if this system can handle negative epoch values
	@timevalues = localtime(-1);
	
	# skip block:
	SKIP: {
		# skip section
		if (! @timevalues) {
			skip 'this system cannot handle dates before the epoch', $iterations;
		}
		
		# variables
		my ($date, $control, @timevalues);
		
		# get date object and control day
		$date = Date::EzDate->new('Jan 4, 1970 5pm');
		$control = $date->{'epoch day'};
		
		foreach my $i (0..$iterations) {
			err_comp(
				$date->{'epoch day'},
				$control,
				"$name: iteration $i",
			);
			
			$control--;
			$date->{'epoch day'}--;
		}
	}
	
	ok(1, "$name: end");
};
#
# check epoch days around the epoch
#------------------------------------------------------


#------------------------------------------------------------------------------
# check for daylight savings time issue
#
do {
	my ($date);
	my $name = 'daylight savings time';
	
	$date = Date::EzDate->new('Jan 1, 2005 3pm');
	err_comp ($date->{'miltime'}, '1500', "$name: initial");
	
	$date->{'epoch day'} += 180;
	err_comp ($date->{'miltime'}, '1500', "$name: epoch day (1)");
	
	$date->{'epoch day'} += 180;
	err_comp ($date->{'miltime'}, '1500', "$name: epoch day (2)");
	
	ok(1, "$name: end");
};
#
# check for daylight savings time issue
#------------------------------------------------------------------------------



#------------------------------------------------------------------------------
# revised monthnum algorithm
#
do {
	my ($date);
	my $name = 'revised monthnum algorithm';
	
	$date = Date::EzDate->new('Dec 1, 2004 12:54:15');
	
	err_comp
		$date->{'{month short} {day of month}, {year} {clock time}'},
		'Dec 01, 2004 12:54 pm',
		"$name: (1)";
	
	$date->{'monthnum'}++;
	
	err_comp
		$date->{'{month short} {day of month}, {year} {clock time}'},



( run in 1.708 second using v1.01-cache-2.11-cpan-71847e10f99 )