in reply to counting number of working days

You might want to look at the CPAN modules Date::Calc and/or Date::Manip. I am relatively certain one or both will do what you need.

Update: You'll probably find Date::Calendar->delta_workdays() (which is part of Date::Calc) helpful.

--
edan (formerly known as 3dan)

Replies are listed 'Best First'.
Re: Re: counting number of working days
by bar10der (Beadle) on Feb 16, 2004 at 12:57 UTC
    I am new to perl programming so with my little knowledge I tried to use Date::Calendar->delta_workdays() but I am getting errors which I am not able to usnderstand. In first case when I use following code -
    ----

    #!perl -w
    use Date::Calendar;
    use Date::Calendar::Profiles qw( $Profiles );
    my $calendar = Date::Calendar->new();
    #use strict;
    use warnings;
    my $date1='16-02-2004';
    my $date2='23-02-2004';
    my $days = $calendar->delta_workdays($date1,$date2,0,0); print "count is $days\n";
    ----
    --
    I am getting following error -
    Date::Calendar::delta_workdays(): not enough input parameters for a date at test.pl line 9

    When I read the document, it seemsthe format in which I am supplying vars are valid

      I have never used the modules I mentioned - I just know that other people have suggested using them for their Date/Time processing needs. But since you asked, I installed them, and threw the following together, which works:

      #!/usr/bin/perl -l use Date::Calendar::Profiles qw( $Profiles ); use Date::Calendar; my $cal = Date::Calendar->new( $Profiles->{US} ) or die "no calendar\n"; my $days = $cal->delta_workdays( 2004, 2, 11, # first date 2004, 2, 18, # second date 1, # include first date 0); # exclude second date print "days: $days";

      The example prints the number of US workdays from Feb. 11, 2004 to Feb. 18, 2004, which is 4 (Presidents Day!).

      HTH
      --
      edan (formerly known as 3dan)