Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: checking for valid date

by TedPride (Priest)
on Jul 30, 2006 at 16:54 UTC ( [id://564633]=note: print w/replies, xml ) Need Help??


in reply to checking for valid date

Just because I like to roll my own:
use strict; use warnings; while (<DATA>) { chomp; print "$_ : ", validate($_), "\n"; } BEGIN { my @mdays = (0,31,28,31,30,31,30,31,31,30,31,30,31); sub validate { no warnings; my ($year, $month, $day) = $_[0] =~ m/^(\d{4})(\d{2})(\d{2})$/ +; my $nyear = (localtime())[5] + 1900; ##### Year range is 10 years on either side of current year ##### Also exits if m// returned nothing return if $year < $nyear - 10 || $year > $nyear + 10; return if $month < 1 || $month > 12; ##### Leap year conditions if ($month == 2) { if ($year % 4 != 0) { $mdays[2] = 28; } elsif ($year % 400 == 0) { $mdays[2] = 29; } elsif ($year % 100 == 0) { $mdays[2] = 28; } else { $mdays[2] = 29; } } return if $day < 1 || $day > $mdays[$month]; return 1; } } __DATA__ 1234567 19991203 20051303 20051232 20040229 20050229 20401223

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://564633]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-03-29 15:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found