my $dt1 = DateTime->now(); my $dt2 = $dt1->clone->subtract( weeks => 1); #### #!/usr/bin/perl -w use strict; use DateTime; my ($start, $end, @dates); $start = DateTime->new(day => 1, month => 1, year => 2017); $end = DateTime->new(day => 31, month => 1, year => 2017); while ($start <= $end) { # Skip weekends if ($start->day_of_week() > 5) { push(@dates, $start); } $start = $start->add(days => 1); } for (@dates) { print $_, $/; } #### 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 2017-02-01T00:00:00 #### 2017-01-02T00:00:00 2017-01-03T00:00:00 2017-01-04T00:00:00 2017-01-05T00:00:00 2017-01-06T00:00:00 2017-01-09T00:00:00 2017-01-10T00:00:00 2017-01-11T00:00:00 2017-01-12T00:00:00 2017-01-13T00:00:00 2017-01-16T00:00:00 2017-01-17T00:00:00 2017-01-18T00:00:00 2017-01-19T00:00:00 2017-01-20T00:00:00 2017-01-23T00:00:00 2017-01-24T00:00:00 2017-01-25T00:00:00 2017-01-26T00:00:00 2017-01-27T00:00:00 2017-01-30T00:00:00 2017-01-31T00:00:00