How to find Day of the Week from the given date (Perl)?

Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to find Day of the Week from the given date (Perl)?
# 1  
Old 03-06-2008
How to find Day of the Week from the given date (Perl)?

How to find the Day of the Week of the given Date using perl?
If I have a date in YYY--MM-DD format, how to find the DOW? Based on that, I need to find the following sunday.
Pls help.
# 2  
Old 03-06-2008
Although you may likely handle it with primitive Perl functions (such as Time::Local and localtime()), I would suggest leaving it to a module specialized for that job.

Date::Calc - Gregorian calendar date calculations -
# 3  
Old 03-06-2008
Thanks for your reply.
I initialized
Date::Calc qw(Day_of_Week);

and used the following code in my logic,
$dow = Day_of_Week($year,$month,$day);

But iam getting follwing error
Can't locate Date/ in @INC (@INC contains:....

Last edited by Yogesh Sawant; 07-05-2009 at 11:34 AM.. Reason: added code tags
# 4  
Old 03-07-2008
Can any one help in this pls...
# 5  
Old 03-07-2008
You have to install that module yourself as it is not shipped with Perl.

Steffen Beyer / Date-Calc-5.4 -
# 6  
Old 03-07-2008
Thanks for your effort.
Iam able to write up my own code.

my $MaxDate = '2008-03-07';

my ($MaxYear, $MaxMonth, $MaxDay, @monthDays, $YearSec, $MonthSec, $DaySec, $i);
$MaxYear = substr($MaxDate,0,4);
$MaxMonth = substr($MaxDate,5,2);
$MaxDay = substr($MaxDate,8,4);
@monthDays = (0,31,28,31,30,31,30,31,31,30,31,30,31);
(($MaxMonth = 12) && (--$MaxYear)) if (--$MaxMonth == 0);
while (++$i <= $MaxYear) {
	(!($i % 400) && ($YearSec += 366)) || (!($i % 100) && ($YearSec += 365)) || (!($i % 4) && ($YearSec += 366)) || ($YearSec += 365);
$YearSec = $YearSec * 24 * 60 * 60;
(!($MaxYear % 400) && ($monthDays[2] = 29)) || !($MaxYear % 100) || (!($MaxYear % 4) && ($monthDays[2] = 29));
$i =0;
($MonthSec += $monthDays[$i] * 24 * 60*60) while (++$i <= $MaxMonth);
my $DaySec = ($MaxDay-1) * 24 * 60 * 60;
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(18000+$YearSec+$MonthSec+$DaySec);
$year += 1900;
$mon += 1;
my $ProcessDatetime = sprintf "%4d%02d%02d%02d%02d%02d",$yedar,$mon,$mday,$hour,$min,$sec;

later found another simple method of
	my $MaxYear = substr($MaxDate,0,4);
	my $MaxMonth = substr($MaxDate,5,2);
	my $MaxDay = substr($MaxDate,8,4);
	my $weekday =  strftime("%u", 0, 0, 0, $MaxDay , $MaxMonth - 1, $MaxYear - 1900, -1, -1, -1);
	$MaxDay += 7-$weekday;
	my $sunday =  strftime("%Y%m%d", 0, 0, 0, $MaxDay , $MaxMonth - 1, $MaxYear - 1900, -1, -1, -1);

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reading in MM/DD/YY, find Day of Week

Hi everyone, I have a shell script that merges many files down in to one, then removes unwanted lines, that part is working fine: #!/bin/bash FILES=/home/pi/temp/qbd/* for f in $FILES do echo "Processing $f file..." # take action on each file. $f store current file name echo... (9 Replies)
Discussion started by: gjws
9 Replies

2. Shell Programming and Scripting

How to get the consecutive last 10 week day date using UNIX ksh shell scripting?

Hi, i am writing a ksh shell script to check the last month end date whether it is falling in last 10 week day date, I am not sure How to use "Mr. Perderabo's date calculator", Could you Please let me know how to use to get my requirement, I tried my own script but duplicate week day and... (5 Replies)
Discussion started by: karthikram
5 Replies

3. Shell Programming and Scripting

How to obtain a day of the week from the date?

I have a date in format YYYYMMDD, i need to get the day of the week from the given date. I am working in AIX system. ---------- Post updated at 09:59 AM ---------- Previous update was at 09:57 AM ---------- Tried to post sum of the thread's link from which i tried, but de rules didnt allow me... (9 Replies)
Discussion started by: baranisachin
9 Replies

4. HP-UX

Find Day of Week

In HP-UX the date command does not have the "-d" switch like some other *nixes do. I'm working a simple script to tell me, given the day, month and year what day of the week that falls on. Assuming valid day, month and year input (I'd perform quality checks on the input separately, but not... (5 Replies)
Discussion started by: rwuerth
5 Replies

5. Shell Programming and Scripting

How to add day of week at the end of each line that shows the date?

I have a file that looks like: file1: www_blank_com 20121008153552 www_blank_com 20121008162542 www_blank_com 20121009040540 www_blank_com 20121009041542 www_blank_com 20121010113548 www_blank_com 20121011113551 www_blank_com 20121012113542 I want the new file to show the day of... (3 Replies)
Discussion started by: castrojc
3 Replies

6. Shell Programming and Scripting

Finding Day of the week from date

I have a problem of Finding Day of the week from date, but i need to do it within awk On SOLARIS Input:20101007(YYYYMMDD) Output:Thursday kindly provide suggestions. Thanks in advance (8 Replies)
Discussion started by: junaid.nehvi
8 Replies

7. Shell Programming and Scripting

how to obtain date and day of the week from `date` command

Hi, does anybody know how to format `date` command correctly to return the day of the week? Thanks -A I work in ksh.... (1 Reply)
Discussion started by: aoussenko
1 Replies

8. Shell Programming and Scripting

Function to get day of week from YYYY-MM-DD date

Can't find out how to get the day of the week from a given date, anyone got a code snippet that could help please? Ta!! (4 Replies)
Discussion started by: couponmeup
4 Replies

9. UNIX and Linux Applications

How to find 'Day of week' in Linux system

Hi All, I want to find a day of week for the Linux system. can some one help me on this.. Thanks in advance, Raji. (2 Replies)
Discussion started by: rajinavaneethan
2 Replies

10. HP-UX

Get Day of Week from date

Hi All, I have date in string format 'YYYY-MM-DD'. I want to know day of the week for this date. Example. For '2005-08-21' my script should return '0' or Sunday For '2005-08-22' it should return '1' or Monday I want piece of code for HP-UX korn shell. Appreciate reply on this. (5 Replies)
Discussion started by: vpapaiya
5 Replies
Login or Register to Ask a Question

Featured Tech Videos