On 6/23/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> People of the Perl,
> 
> I have a need to develop some logic to automatically pick up a publc key
> for my gpg keyring.  I will use cURL ( client for URL lookups ) language
> for the actual download , but the catch is the expiration time of our key
> which is 2005-11-16.  So I want to say if calc data =~ current date then
> call cURL.
> I tried an ascii increment but this only incremented from 2005-06-23 to
> 2006.  Maybe I am going about this all wrong???
> My like operator really needs to say + - 7 days from 2005-11-16 then call
> cURL and check for a new public key.
> 
> Here is my code:
> 
> 
> require 5.8.0;
> use strict;
> use warnings;
> 
> # for talx expiration date of their pubkey 2005-11-16
> 
> our $time = $^T;
> $ENV{"PATH"} =
> qq(/home/gpghrp/.gnupg/scripts:/usr/local/bin:/bin:/usr/bin);
> 
> 
> ##--## Begin Routines ##--##
> 
>         sub dateme
>         {
>                 my ($year,$month,$day) = (localtime)[5,4,3];
>                 sprintf ("%04d-%02d-%02d\n", ($year += 1900),
> $month+1,$day);
>         }
> my $curtdate = &dateme();
> #print $curtdate,"\n";
> 
>         sub date_manip_fwd_6mths
>         {
>                 use constant ONE_DAY => 86400;
>                 use constant THIRTY_DAYS => ONE_DAY * 30;
>                 use constant SIX_MTHS => THIRTY_DAYS * 5;
>                 my $days = (shift);
>                 my ($y,$m,$d) = (localtime($time + $days)) [5,4,3];
>                 sprintf ("%04d-%02d-%02d", ($y += 1900), $m+1,$d);
>         }
> 
> my $calcdate = &date_manip_fwd_6mths(SIX_MTHS);
> #print $calcdate,"\n";
> #my $calcdate = &date_manip_fwd_6mths();
> 
> 
> ##--## Main ##--##
>         print "$calcdate\n$curtdate";
>         if ( $calcdate eq $curtdate ) {
>                 print "YES\n";
>                 print "$calcdate\n$curtdate";
>         }
> 
> __END_CODE__
> 
> __BEGIN_DATA__
> 
> 2005-11-20
> 2005-06-23

Derek,

Check out Date::Calc. I'd do somthing like this:

  #!/usr/bin/perl

  use warnings;
  use strict;

  use Date::Calc qw(Delta_Days);

  my $target = "2005-11-16";

  my ($nowyr, $nowmo, $nowday) = (localtime)[5,4,3];
  my ($taryr, $tarmo, $tarday) = split /-/, $target;
  
  my $diff = Delta_Days($nowyr + 1900, $nowmo, $nowday, $taryr,
$tarmo, $tarday);

  if ( abs($diff) <= 7 ) {
    system("curl", "args");
    # but why not use lwp?
  }


HTH,

-- jay
--------------------
daggerquill [at] gmail [dot] com
http://www.tuaw.com
http://www.dpguru.com
http://www.engatiki.org

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to