Problems in Program Day of Week


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problems in Program Day of Week
# 1  
Old 10-27-2009
Problems in Program Day of Week

My problem is that i want to calculate the day of the week, i want to change result given as a number for the day.

I mean, the program now do that if the day is Monday is represented by 0, Tuesday by 1.. but i want the word "Monday" as a result. I thought in a bucle if but there is always a mistake and i dont know why.

Thank you



Code:
#!/bin/sh

#              ja fe ma ap ma ju ju ag se oc no de
set -A lasts 0 31 28 31 30 31 30 31 31 30 31 30 31


day=$1
month=$2
year=$3

#
# Get Day of Week of Jan 1
dow1=$(cal 1 $year | sed -n '3s/. //gp')
((dow1=7-dow1))

#
#  It is a Leap Year?
leap=0
if ((!(year%100))); then
     ((!(year%400))) && leap=1
else
     ((!(year%4))) && leap=1
fi

#
#  Set number of days of Februray
lasts[2]=28
((leap)) && lasts[2]=29

#
#  calculate day of year
i=0
previous=0
while ((i < mes)) ; do
     ((previous=previous+lasts[i]))
     ((i=i+1))
done
((doy=previous+dia))

#
#  Calculate day of week
((dow = (doy+dow1-1)%7 ))

#echo dow = $dow
echo diadelasemana=$dow


if [$dow -eq 0] then
echo -"Monday"
else
echo "..the same but with Tuesday...etc" 
fi

exit 0


Last edited by pludi; 10-27-2009 at 02:01 PM.. Reason: code tags, please...
# 2  
Old 10-27-2009
Code:
if [$dow -eq 0] then
echo -"Monday"
else
echo "..the same but with Tuesday...etc" 
fi

use CASE
Code:
case $dow in
   0) echo -"Monday" ;;
   1) echo -"Tuesday" ;; 
# Add 2 ~6  here.
   *)  COMMAND ;; ## Default action if no PATTERN matched
esac

# 3  
Old 10-27-2009
If you have GNU date, you can do this:
Code:
#!/bin/sh
date -d $3$2$1 '+%A'

Code:
$> ./test 28 10 09
Wednesday

# 4  
Old 10-29-2009
Thanks!

Great!!! Thank you so much
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. 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

5. Shell Programming and Scripting

Get day of week from cal

Hi all, I am trying to get dow from cal using below script #! /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... (4 Replies)
Discussion started by: bzylg
4 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