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


in reply to Re: Representing windows of time in a string
in thread Representing windows of time in a string

L~R, thanks for the full framework! I was headed down the same path and manipulated the examples from the Panther to work with 24 hours per day:
#!/usr/bin/perl -w use strict; my %base_hours = ( sun => 0, mon => 24, tue => 48, wed => 72 , thu => +96, fri => 120, sat => 144 ); my $vector = interval_parse("Sat 9-17, Sun 9-17"); my $bits = unpack("b*", $vector); print $bits, "\n"; sub interval_parse { my ($interval_sequence) = @_; my ($time_range) = ""; foreach my $day_hours (split /,/, $interval_sequence) { my ($day, $from, $to) = ($day_hours =~ /([A-Za-z]+).*(\d+)-(\d+ +)/); my $base = $base_hours{lc $day}; $from += $base; $to += $base; for (my $i = $from; $i < $to; $i++) { vec($time_range, $i, 1) = 1; } } return($time_range); }
Thanks for the pointer!

-Nitrox