http://qs1969.pair.com?node_id=778585

Wire64 has asked for the wisdom of the Perl Monks concerning the following question:

Hi wisdom monks,
Im trying to write someting that will a number of display messages based on systemclock, ill try to explain.

Say i got 10 messages and i want to show one every 5 seconds. so 1 message shows when the time is between 0:00 and 0:04seconds;
2nd message will show 0:05 <-> 0:09 seconds. ... message 10 will show 0:45 <-> 0:49.
then message 1 will show again from 0:50 <-> 0:54. 2 will be 0:55 <-> 0:59
when minute 1 starts i want it to start with message 3, thats 1:00 <-> 1:04
My question is how do i calculate this :)
hope this makes sence, thanks in advanced,
Wire64

dont have much that will do the above but will show you where i'am at now.
```
#!/usr/bin/perl
#
# display stuff on systemclock

use Switch;

# Get current date & time
my (\$tsec,\$tmin,\$thour,\$tday,\$tmonth,\$tyear,\$twday,\$tyday,\$tisdst) = l
+ocaltime(time);

\$showitems=10;
\$delay=5;

\$totalshowtime=\$showitems*\$delay;

#calulate how many minutes it will take to complete
\$showminutes = \$totalshowtime / 60;

#remove everthing behind the . so we get a round number
\$showminutes =~ s/(\d)\.\d*/\$1/;

switch (\$showminutes) {
case /0/ {
my \$number= \$tsec / (\$showitems * \$delay) ;
print "\$number\n";
#print "0\n";
}

case /1/ {print "1\n";
}
else {print "-\$showminutes- did not match any\n";}
}

print "\$showminutes | \$totalshowtime =  \$showitems * \$delay";
print "\n\$tsec \$tmin";