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>