NAME

Date::Step - A basic date iterator

SYNOPSIS

use Date::Step

my $step = Date::Step->new();  # new object
$step->set_start('20051008');  # start date
$step->set_end('20061008');    # end date
$step->set_increment('1d12h'); # date increment length
$step->set_format('%Y %B %e'); # format of returned date string

my $date;
do {
  $date = $step->get_current();
  print "$date\n";
} while ($step->next());

DESCRIPTION

Date::Step is a basic date iterator class.

Returned dates are done so using the convention set up by the Unix 'date' program:

B = January...December
b = Jan...Dec
d = Padded day of month; 01-{28,29,30,31}
e = zero padded day of month 1-{28,29,30,31}
h = Jan...Dec
k = padded hour of day; 00-23
l = zero padded hour of dayl 0-23
m = padded month; 01-12
Y = four digit year
y = two digit year; 00-99

The default start date is Jan 1 1900, but there is no reason why the date can't be set earlier than that. If there is a max date, it is probably after the year 9999. =head1 AUTHOR

Brett D. Estrade - <estrabd AT mailcan DOT com>

TODO

Write some tests and more useful documentation.

CAVEATS

This module handles hours as the smallest division of time. If you wish to have a more fine grained capability, please let me know.

I am not sure how robust this module is to doing things like changing the format or the increment amount arbitrarily through out the iterative generation of daytes, but I do not see why it would cause problems. The only issue that might possibly come up would be losing some time during the transition phase. Again, I don't know bc I have not tested it.

There is no "previous" date, but it would probably be a neat features.

BUGS

Please send reports to me.

AVAILABILITY

ACKNOWLEDGEMENTS

Bug reports who supply patches for a cool new feature or a bug fix get there name here :)

COPYRIGHT

This code is released under the same terms as Perl.