Get day of week from cal


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Get day of week from cal
# 1  
Old 01-05-2010
Bug Get day of week from cal

Hi all, I am trying to get dow from cal using below script

Code:
#! /bin/bash

YEAR=`echo $1 | cut -c 1-4`
MONTH=`echo $1 | cut -c 5-6`
DAY=`echo $1 | cut -c 7-8`

for i in 1 2 3 4 5 6 7
do
        dayofweek=`cal $MONTH $YEAR | awk '$i == $DAY {printf("%s","$i")}'`

        echo $dayofweek
done

It will accept date in format YYYYMMDD as an argument, and output dow, Sunday will be 1st day of week, any idea about the "awk" part, it doesn't work for me? Thanks in advance...

Last edited by bzylg; 01-05-2010 at 02:53 AM..
# 2  
Old 01-05-2010
Do you not have gnu date?
Code:
#!/bin/sh
echo $(( $(date -d "$1" +%w ) + 1 ))

# 3  
Old 01-05-2010
Quote:
Originally Posted by Scrutinizer
Do you not have gnu date?
Code:
#!/bin/sh
echo $(( $(date -d "$1" +%w ) + 1 ))

Hi Scrutinizer, I assume not as I m currently unavailable to the target system. Thanks for your reply I will first try yours when I get to the system. Anyway I figured out a way to do this, may seem stupid.

Code:
#! /bin/bash 

YEAR=`echo $1 | cut -c 1-4`
MONTH=`echo $1 | cut -c 5-6`
DAY=`echo $1 | cut -c 7-8`

for i in 1 2 3 4 5 6 7
do        dayofweek=`cal $MONTH $YEAR | awk -v day=$DAY -v tarRow=$i '$tarRow == day {print($tarRow)}'`

        if [ "$dayofweek" != "" ];
        then

                echo $i
                break;
        fi
done

In work it's Unix/Solaris, in home it's OSX, seems "date -d" doesn't work under OSX.
# 4  
Old 03-12-2010
Try this

Verified on Unix, BSD, and Linux based systems:

Code:
date +%A

# 5  
Old 03-12-2010
The following works for my cal's output format:

Code:
#!/bin/bash

YEAR=${1:0:4}
MONTH=${1:4:2}
DAY=${1:6:2}

set Sunday Monday Tuesday Wednesday Thursday Friday Saturday
eval echo \$$(cal $MONTH $YEAR | awk -v d=${DAY#0} 'match($0, "(^| )"d"( |$)") {print int(RSTART/3+1)}')

I took the liberty of using non-standard parameter expansion offset slicing since your original post indicates that this is a bash script.

Regards,
Alister
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Get the week's day

Hi All, I have the below requirement , if i give the week number for ex 41 i need to get the date for Monday and thursday for this given week. my expected output is 13/10/2014 (Monday's date) and 16/10/2014 (Thursday's date) I am using GNU LINUX . Pls help me with your thoughts. Thanks in... (7 Replies)
Discussion started by: mohanalakshmi
7 Replies

2. UNIX for Dummies Questions & Answers

Sudoers for one day per week?

I have been volunteered by my boss to be the sysadmin for our production redhat server. He asked me to tighten the security to avoid mishaps like "rm -f *" that occured not long ago. Right now, we have 53 users sudo-ing into the machine and it is an audit nightmare. I am wondering if it... (15 Replies)
Discussion started by: alan
15 Replies

3. 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

4. Solaris

How to get day of the week from a timestamp using Solaris

Looking for something equivalent to what im able to do with Linux: date -d 20120523 +%a Wed Is there a Solaris equivalent? (5 Replies)
Discussion started by: chihova
5 Replies

5. UNIX for Dummies Questions & Answers

Day of the week from a string

Hi All, I need to know how to derive the day of the week by passing the value in following format: Feb 28 2010 The output I'm expecting is Sunday or Sun. I know, I can use the following code to get the day of the week. date +%a But I want to pass the value as a string. Please help... (11 Replies)
Discussion started by: shash
11 Replies

6. 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

7. UNIX for Dummies Questions & Answers

Changing First Day Of The Week?

Hi All, Our system is running on Solaris 8 and we are using US locale. By default the First Day Of Week is Sunday, is it possible for us to change it to Monday? I have googled it but found very little of use. THanks in advance. (2 Replies)
Discussion started by: fowlerleftfoot
2 Replies

8. Shell Programming and Scripting

Yesterday's Day of week

I need o get yesterday's day of week but im not exactly sure. the actual name is what i want. I can do it with numbers but im not sure with words. (3 Replies)
Discussion started by: rcunn87
3 Replies

9. Programming

Function that gets the day of the week (0-6) ??

Hi , I am working at Unix system,using c lang. I need c fun which return the day of the week . For example : 0- Sunday. 1- Monday. .... 10x. (4 Replies)
Discussion started by: kamil
4 Replies

10. UNIX for Dummies Questions & Answers

Calculating the day of the week

Hi all, I would like to calculate the day of the week using a supplied date. i.e. 20011012 = Day 5. Any ideas? Many thanks, ligs (4 Replies)
Discussion started by: ligs
4 Replies
Login or Register to Ask a Question