use warnings; use strict; use DateTime; my $dt = DateTime->new(year=>2015,month=>12,day=>30); for (1..10) { print $dt->ymd, " week ",$dt->week_number,"\n"; $dt->add(days=>1); } __END__ 2015-12-30 week 53 2015-12-31 week 53 2016-01-01 week 53 2016-01-02 week 53 2016-01-03 week 53 2016-01-04 week 1 2016-01-05 week 1 2016-01-06 week 1 2016-01-07 week 1 2016-01-08 week 1