#!/usr/bin/perl $t1 = '7:30'; #minimum time $t2 = '11:45'; #maximum time @t1 = split(':', $t1); @t2 = split(':', $t2); $interval = 15; #may be (10,15,20,30) #create an array of intervals for (0..(60/$interval)-1) { $mins[@mins]=(($_*$interval) ? $_*$interval : '00'); } #loop for number of hours requested for ($t1[0]..$t2[0]) { #loop for number of intervals in array foreach $mins (@mins) { #print if min <= result <= max if ($_<=$t2[0]&&$mins<=$t2[1]) { print "$_:$mins\n" if (!($_==$t1[0]&&$mins<$t1[1])) } } }