Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Oct 2014 13:21:35 -0500
From:      "B. Estrade" <estrabd@gmail.com>
To:        Dan Langille <dan@langille.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: perl isvaliddate function
Message-ID:  <CALSf6fQ%2BiaXrz9bCe7mZEz8K%2BUsbG5jdgibueNK_dyhMUY2xdg@mail.gmail.com>
In-Reply-To: <4EA9EE9C-5049-4C50-B361-07F58FA19896@langille.org>
References:  <4EA9EE9C-5049-4C50-B361-07F58FA19896@langille.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Looks fine to just get it working. If you wanted to be more efficient, I
believe there is a way to use the core POSIX::strfmtime in a way that would
verify that the date you start with is the same date as the one returned
after the format.  This core function is also very useful for date addition
and subtraction.

I don't have time at this moment to create a proof of concept, but if
you're interested let me know and I will when I have a minute.

Cheers,
Brett

On Sat, Oct 25, 2014 at 11:56 AM, Dan Langille <dan@langille.org> wrote:

> I=E2=80=99m coding up a sanity check for FreshPorts.  It will verify that=
 field
> that should be dates are dates.
>
> Feedback welcome.  The system is already using the DATE module, so I=E2=
=80=99m
> leveraging that.
>
> Pasted at http://dpaste.com/1H0Q8RR.txt but included below, because.
>
> $ cat test-date.pl
> #!/usr/bin/perl
>
> use Date::Parse qw( str2time );
>
> sub IsValidDate($) {
>   my ($string) =3D @_;
>
>   my $Date =3D str2time($string);
>
>   return defined($Date);
> }
>
> my $a =3D '2014-11-30 unless *coin ports remain unfixed';
>
> if (IsValidDate($a)) {
>   print "'$a' is a valid date\n";
> } else {
>   print "'$a' is NOT a valid date\n";
> }
>
> my $b =3D '2014-02-30';
>
> if (IsValidDate($b)) {
>   print "'$b' is a valid date\n";
> } else {
>   print "'$b' is NOT a valid date\n";
> }
>
> my $c =3D '2014-02-28';
>
> if (IsValidDate($c)) {
>   print "'$c' is a valid date\n";
> } else {
>   print "'$c' is NOT a valid date\n";
> }
>
>
> $ perl test-date.pl
> '2014-11-30 unless *coin ports remain unfixed' is NOT a valid date
> '2014-02-30' is NOT a valid date
> '2014-02-28' is a valid date
> $
>
> =E2=80=94
> Dan Langille
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALSf6fQ%2BiaXrz9bCe7mZEz8K%2BUsbG5jdgibueNK_dyhMUY2xdg>