Validating date in yyyymmdd format using PERL


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Validating date in yyyymmdd format using PERL
# 1  
Old 04-26-2012
Validating date in yyyymmdd format using PERL

Hi all,


i had a code where in user will enter a date in yyyymmdd format.. i didnt use any validation for the date and now the problem is if a user enters date instead of month after year it is proceeding with the code..

like if the date is
Code:
20120426

and if the user enters
Code:
20122604

it should not proceed!

so i need to have a check for the same.. pls help
# 2  
Old 04-26-2012
Code:
/^20\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$/

Beware, this regex will still validate if date entered is 20120231.
# 3  
Old 04-26-2012
hi bala,

thanks for your quick reply...

if my variable is $date then how to use this... i am beginner in perl. pls help

---------- Post updated at 02:53 AM ---------- Previous update was at 02:52 AM ----------

and this only validates for year 2012 or can i also use 1998 or something like?
# 4  
Old 04-26-2012
Code:
 
$ cat one.pl
#!/bin/perl
use Time::Local;
my $date = $ARGV[0];
$date =~ s/\s+$//;
$date =~ s/^\s*//;
my ($year, $month, $day) = unpack "A4 A2 A2", $date;
eval{ 
    timelocal(0,0,0,$day, $month-1, $year); # dies in case of bad date
    print "$date is valid\n";
} or print "Bad date: $@";

Code:
bash-3.2$ perl one.pl 20120430
20120430 is valid

bash-3.2$ perl one.pl 20120431
Bad date: Day '31' out of range 1..30 at one.pl line 8

bash-3.2$ perl one.pl 20120231
Bad date: Day '31' out of range 1..29 at one.pl line 8

bash-3.2$ perl one.pl 20120229
20120229 is valid

bash-3.2$ perl one.pl 20120230
Bad date: Day '30' out of range 1..29 at one.pl line 8

These 4 Users Gave Thanks to itkamaraj For This Post:
# 5  
Old 04-26-2012
nice one itkamaraj
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Date format change from mm/dd/yyyy to yyyymmdd in comma seperate line in perl

Hi All, I have line ,A,FDRM0002,12/21/2017,,0.961751583,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, it contains date in mm/dd/yyyy format i want to change this to yyyymmdd format using perl. Use code tags, thanks. (8 Replies)
Discussion started by: vishal0746
8 Replies

2. Shell Programming and Scripting

Date format to be changed from DDMMYYYY to YYYYMMDD

My requirement is:- there will be files at a location each day with the date format DDMMYYYY. Novawise_Activity_Call_Notes_04022013.txt Novawise_Activity_Inbound_04022013.txt Novawise_Activity_Inbound_05022013.txt Novawise_Activity_Call_Notes_05022013.txt... (8 Replies)
Discussion started by: djrulz123
8 Replies

3. Shell Programming and Scripting

Date after 5 days from current date in YYYYMMDD format

Hello Experts, How do i get date after 5 days from current date in YYYYMMDD format? How do you compare date in YYYYMMDD format? Thanks (8 Replies)
Discussion started by: needyourhelp10
8 Replies

4. Solaris

Date after 5 dates in YYYYMMDD format

Hi Experts, How to get date 5 days after current date in YYYYMMDD format? How do we compare date in YYYYMMDD format? Thanks (1 Reply)
Discussion started by: needyourhelp10
1 Replies

5. Shell Programming and Scripting

Change the date format from mmddyyyy to yyyymmdd

How do I change the date format from mmddyyyy to yyyymmdd in PERL. Can any one help me please. (3 Replies)
Discussion started by: thankful123
3 Replies

6. Shell Programming and Scripting

PERL String to Date (Custom format yyyymmdd to dd-mon-yyyy)

Hi All, I am learning PERL for one of the projects, and in one of these scripts, I read a flat text file and print in the terminal. The problem is, the text file has a date field. The format is yyyymmdd. I need to display this as dd-mon-yyyy. Any ideas to do this? Thanks a lot for the... (9 Replies)
Discussion started by: guruparan18
9 Replies

7. Shell Programming and Scripting

convert date format YYYYMMDD to MM/DD/YYYY

In my shell script i have a variable which stores date in the format of YYYYMMDD. Is there any way to format this value to MM/DD/YYYY. Thanks. (8 Replies)
Discussion started by: nasirgondal
8 Replies

8. UNIX for Dummies Questions & Answers

Format date from MM/DD/YYYY to YYYYMMDD

I have a file with some date columns in MM/DD/YYYY format: SMPBR|DUP-DO NOT USE|NEW YORK||16105|BA5270715|6/6/2007 |MWERNER|109||||JOHN||SMITH|MD|72211118||||||74559|21 WILMINGTON RD||D|11/6/2003|SL# MD CONTACT-LIZ RICHARDS|||0|Y|N||1411458| And I want to convert the date format to: ... (5 Replies)
Discussion started by: ChicagoBlues
5 Replies

9. HP-UX

How can i get the yesterday's date in YYYYMMDD format

How can i get the yesterday's date in YYYYMMDD format??? (4 Replies)
Discussion started by: prasadsr
4 Replies

10. UNIX for Dummies Questions & Answers

get yesterday date in yyyymmdd format

I would like to know how I could get a yesterday date in yyyymmdd e.g. today is 20011109, and I would like to get 20011108. Thank you!:confused: (2 Replies)
Discussion started by: hk_newbie
2 Replies
Login or Register to Ask a Question