#!/usr/bin/perl

use lib '../lib';

use DateTime;
use DateTime::Event::DayOfWeek qw/:daynames_en/;

my $now = DateTime->now( time_zone => 'Australia/Melbourne' );

#my $wednesday = new DateTime::Event::DayOfWeek( WEDNESDAY );
my $wednesday = DateTime::Event::DayOfWeek::Wednesday;

printf("%9s => %s\n" x 4,
	Following => $wednesday->following( $now )->datetime,
	Previous  => $wednesday->previous( $now )->datetime,
	Closest   => $wednesday->closest( $now )->datetime,
	Is        => $wednesday->is( $now ),
);

#======================================================================
print "As list:\n";
#----------------------------------------------------------------------

my @list = $wednesday->as_list(
	from => $now,
	to   => $now->clone->add( months => 2 )
);
print $_->datetime, "\n" for @list;

#======================================================================
print "As set:\n";
#----------------------------------------------------------------------
my $set = $wednesday->as_set(
	from => $now,
	to   => $now->clone->add( months => 2 )
);
$iter = $set->iterator;
while ( $dt = $iter->next ) {
	print $dt->datetime, "\n";
};