Korn Shell Script - Getting yesterdays date


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Korn Shell Script - Getting yesterdays date
# 15  
Old 08-02-2007
Hi,

1) I've never had a problem with the first of the month. Used this quiete a lot for reporting previous days work.

2) man date. This will give the options for date string formatting. But to add the - you'll need to quote them.

3) aaa is just a string (could be anything, within reason) the off set 24 is important part.

Here I use a different string name and offset of 48, gives two days ago date.

YESTERDAY=`TZ=y48 date +%Y"-"%m"-"%d`

2007-07-31
# 16  
Old 10-11-2007
Hi Unix gurus,

Anyone has any scripts out there that determines if current date is the first working day of the month? For example, it should be 2007-OCT-01, 2007-NOV-01, 2007-DEC-03, 2008-JAN-01, 2008-FEB-01, 2008-MAR-03, and so on..

I need this logic incorporated in my script that generates reports on every 1st day of the month. We would prefer not to use cron jobs here.

Any inputs would be much appreciated.

Thanks in advance.
# 17  
Old 10-11-2007
first_day.sh NOV 2007
Your 1st working day of 2007/NOV is : 01-NOV-2007
first_day.sh FEB 2008
your 1st working day of 2008/FEB is : 01-FEB-2008
first_day.sh MAR 2008
your 1st working day of 2008/MAR is : 03-MAR-2008
first_day.sh OCT 2009
your 1st working day of 2009/OCT is : 01-OCT-2009

Try this one as your test, and modify as per your requirements,

#!/bin/sh
function WeekDay
{
###################################################
#Function Name WeekDay()
#Return Value will be one of the following values in WDay
#0,1,2,3,4,5,6
#0-SUNDAY
#1-MONDAY
#2-TUESDAY
#3-WEDNESDAY
#4-THURSDAY
#5-FRIDAY
#6-SATURDAY
###################################################
year=$2
month=$1
day=01
a=`expr 14 - $month`
let a=a/12
let y=year-a
ma=`expr 12 \* $a`
m=`expr $month + $ma - 2`
let y4=y/4
let y100=y/100
let y400=y/400
let m31=m*31
let m12=m31/12
add=`expr $day + $y4 + $y - $y100 + $y400 + $m12`
let wday=add%7
WDay=$wday
}

function firstDay
{
MM=$1
YYYY=$2

case "$MM" in
JAN) mm=1 ;;
FEB) mm=2 ;;
MAR) mm=3 ;;
APR) mm=4 ;;
MAY) mm=5 ;;
JUN) mm=6 ;;
JUL) mm=7 ;;
AUG) mm=8 ;;
SEP) mm=9 ;;
OCT) mm=10 ;;
NOV) mm=11 ;;
DEC) mm=12 ;;
*) echo "Wrong month specified."
exit 1 ;;
esac

WeekDay $mm $YYYY
if [ $WDay -eq 6 ] # if 01 of your month and year falls on SATURDAY then
then # 1st working day will be 03
echo " your 1st working day of $YYYY/$MM is : 03-$MM-$YYYY"
elif [ $WDay -eq 0 ] # if 01 of your month and year falls on SUNDAY then
then # 1st working day will be 02
echo " your 1st working day of $YYYY/$MM is : 02-$MM-$YYYY"
else
# Then as usual default 1st is the 1st working day
echo " your 1st working day of $YYYY/$MM is : 01-$MM-$YYYY"
fi
}

firstDay $1 $2


Last edited by manas_ranjan; 10-11-2007 at 05:50 AM..
# 18  
Old 01-31-2008
Adding hours on date field

Anyone have a script to add number of hours to a date field. Assuming that I have the following date and time:

25/01/2008 02:19:35

Thanks in advance.

Cheers.
# 19  
Old 12-20-2008
simple command to get yesterdays date:
TZ=aaa24 date +%Y%m%d
in yyyymmdd format
# 20  
Old 12-20-2008
Hi try the below one:

date '+%d/%m/%Y %T'

to get in 25/01/2008 02:19:35 format
# 21  
Old 12-20-2008
Using ksh93 date functionality ....
Code:
#!/usr/bin/ksh93

year=2008

for month in jan feb mar apr may jun jul aug sep oct nov dec
do
    day=1
    dow=$( printf "%(%w)T" "${day} ${month} ${year}")
    (( dow == 0 )) && day=2
    (( dow == 5 )) && day=3
    printf "%(%D)T\n" "${day} ${month} ${year}"
done

which produces the following dates
Code:
01/01/08
02/03/08
03/01/08
04/01/08
05/01/08
06/02/08
07/01/08
08/03/08
09/01/08
10/01/08
11/01/08
12/01/08

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to do Date Manupulation in Korn Shell?

Hi All, I need to find the date 19days back from the current date: eg: if today is 17 March 2013 then the output should be : 26 Feb 2013 Can i do this using date command in Korn Shell? And also if i need future 15 days date from current date, how to that? Any help appreciated :) ... (3 Replies)
Discussion started by: Arun Mishra
3 Replies

2. Shell Programming and Scripting

Get yesterdays Date for Input Date

Hi, I have been trying to get the yesterdays date for the Input date I pass. I know how to do for the current timestamp but how to do for the input date. Is there any way I can convert to epoch time and do manipulations and back to human readable date? Please help Thanks ... (1 Reply)
Discussion started by: abhi1988sri
1 Replies

3. Shell Programming and Scripting

Korn Shell Date Formatting

I am serching for a file created today like so: TODAY=$(date +"%b-%d") T_FILE=$(find /export/home/dan/ck/reports/t-status-t.txt-$TODAY-05-00-0?.csv) The file it is searching for is titled: /export/home/dan/ck/reports/t-status-t.txt-Jun-29-05-00-01 however, I when... (2 Replies)
Discussion started by: ther2000
2 Replies

4. Shell Programming and Scripting

how to get the yesterdays date?

Hi All, Can anybody help me to get the yesterdays date in perl script. My script is as below #!/bin/perl -w $yes=system("TZ=IST+24 date +%d-%m-%Y"); print "$yes\n"; script is writting the date but with 0 pls see the output below #!/bin/perl -w $yes=system("TZ=IST+24 date... (2 Replies)
Discussion started by: jam_prasanna
2 Replies

5. Shell Programming and Scripting

How to find yesterdays file - shell script

Hey guys - i have a script (below) that searches for current files in a particular directory. However i was wondering how to make it search for "yesterdays" file. For instance it looks for a file from yesterday and no older than that. I used stat command to check for file information: ... (6 Replies)
Discussion started by: DallasT
6 Replies

6. Shell Programming and Scripting

Filtering the yesterdays date from log files via script.

hi All, I have this sample text file - access.log: Jan 18 21:34:29 root 209.151.232.70 Jan 18 21:34:40 root 209.151.232.70 Jan 18 21:34:43 root 209.151.232.70 Jan 18 21:34:56 root 209.151.232.70 Jan 18 21:35:10 root 209.151.232.70 Jan 18 21:35:23 root 209.151.232.70 Jan 18 21:36:04 root... (2 Replies)
Discussion started by: linuxgeek
2 Replies

7. UNIX for Dummies Questions & Answers

Need to pull Yesterdays Date...

I tried this and it works for the most part, but if the date is 20090301, it displays 20090300. YESTERDAY=$((`date +%Y%m%d` -1)) (2 Replies)
Discussion started by: cards0622
2 Replies

8. UNIX for Dummies Questions & Answers

How to get yesterdays julian date

Hi, Was using date +%Y%j to get current julian date. Can anyone let me know how can I get y'day's julin date. Thx Did check FAQ but couldn't find anything. Thanks. (3 Replies)
Discussion started by: er_ashu
3 Replies

9. Shell Programming and Scripting

yesterdays date

To get yesterays date, execute the command : TZ=aaa24 date +%Y%m%d Output format will be yyyymmdd (2 Replies)
Discussion started by: sujju1985
2 Replies

10. UNIX for Dummies Questions & Answers

Get yesterdays date given todays date

Hi Guys. I am very new to UNIX. I need to get yesterdays and tommorows date given todays date. Which command and syntax do i use in basic UNIX shell. Thanks. (2 Replies)
Discussion started by: magikminox
2 Replies
Login or Register to Ask a Question