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";