How to get tomorrow,yesterday date from date Command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to get tomorrow,yesterday date from date Command
# 1  
Old 09-18-2012
Bug How to get tomorrow,yesterday date from date Command

Hi

I want to get tomorrow and yesterday date from date command. My shell is KSH and server is AIX. I tried several options, but unable to do. Please help on this.

Regards
Rajesh
# 2  
Old 09-19-2012
# 3  
Old 09-19-2012
Here is again. Both version, using some function, no 1970-01-01 limit and ksh93 builtin printf, which has 1970-01-01 limit.
Code:
#!/usr/sh
#datecalc
#bash, ksh, ...
#########################################################################
Date2Jul()
{
        oifs="$IFS"
        IFS="-"
        array=($1) # date component to the array
        IFS="$oifs"
        dd=${array[2]}
        mm=${array[1]}
        yyyy=${array[0]}
        ((a= (14-mm)/12 ))
        ((y= yyyy+4800 - a ))
        ((m= mm + 12*a -3 ))
        ((jd= dd + (153*m+2)/5 + 365*y + y/4 - 32083 ))
        echo $jd
}

#########################################################################
Julian2Date()
{
# julian to the datestrt
# return string:
#   julian d m y dayOfWeek yyyymmdd
        Xjd="$1"
        Xb=0
        (( Xc=Xjd+32082))
        (( Xd= (4*Xc+3)/1461 ))
        (( Xe= Xc-((1461*Xd)/4)  ))
        (( Xm= (5*Xe+2)/153 ))
        (( Xday= Xe - (153*Xm+2)/5 + 1 ))
        (( Xmonth= Xm + 3 - 12*(Xm/10) ))
        (( Xyear= 100*Xb + Xd - 4800 + Xm/10 ))
        Xdstr="$Xday"
        Xmstr="$Xmonth"
        [ "$Xday" -lt 10 ] && Xdstr="0$Xdstr"
        [ "$Xmonth" -lt 10 ] && Xmstr="0$Xmstr"
        Xjulstr="$Xyear$Xmstr$Xdstr"


        ((Xa= (14-Xmonth)/12 ))
        ((Xy= Xyear - Xa ))
        ((Xm= Xmonth + 12*Xa - 2 ))
        ((Xweekday=  (6 + Xday + Xy + Xy/4 + (31*Xm)/12 ) % 7  ))
        ((Xday<10)) && Xday="0$Xday"
        ((Xmonth<10)) && Xmonth="0$Xmonth"
        echo "$Xjd $Xdstr $Xmstr $Xyear $Xweekday $Xjulstr"
}
###################### MAIN ##################################################
# using almost any days using Date2Jul and Julian2Date, also times before 1.1.1970
# yyyy-mm-dd
[ $# -lt 1 ] && echo "usage:$0 yyyy-dd-mm" >&2  && exit 1

datestr="$1"

julian=$(Date2Jul "$datestr")
Julian2Date "$julian" | read julian2 d m y dayOfWeek yyyymmdd
echo "$julian: $d.$m.$y "
echo "weekday (mon=1):$dayOfWeek"
echo "yyyymmdd: $yyyymmdd"
((tomorrow=julian+1))
Julian2Date "$tomorrow" | read julian2 d m y dayOfWeek yyyymmdd
echo "tomorrow $tomorrow: $d.$m.$y "

Or ksh93 printf version with 1970-01-01 limit.
Code:
# http://www2.research.att.com/~gsf/cgi-bin/download.cgi?action=list&name=ksh
# sec since 1970-01-01

[ $# -lt 1 ] && echo "usage:$0 yyyy-dd-mm" >&2  && exit 1

datestr="$1"

# some ex. how to convert date string to the epoc
epoc=$(printf "%(%s)T" now)
epoc=$(printf "%(%s)T" "2010-10-24")
epoc=$(printf "%(%s)T" "2010-10-24 00:00:00")
epoc=$(printf "%(%s)T" "10/24/2010 00:00:00")
epoc=$(printf "%(%s)T" "$datestr" )
echo "sec since 1970-01-01 00:00 UTC: $epoc"
# one day is 86400 sec = (60*60*24)
((day=60*60*24))

# now you can calculate and after that convert back to date string
((yesterday=epoc-day))
printf "%(%Y-%m-%d)T" "#$yesterday"
echo ""


Last edited by kshji; 12-08-2012 at 04:19 AM..
# 4  
Old 09-19-2012
try this

Code:
Getting Date In the Future
To get tomorrow and day after tomorrow (tomorrow+N) use day word to get date in the future as follows:

 
date --date='tomorrow'
date --date='1 day'
date --date='10 day'
date --date='10 week'
date --date='10 month'
date --date='10 year'
date --date='tomorrow'

To get yesterday and earlier day in the past use string day ago:

 
date --date='yesterday'
date --date='1 day ago'
date --date='10 day ago'
date --date='10 week ago'
date --date='10 month ago'
date --date='10 year ago'

---------- Post updated at 11:32 AM ---------- Previous update was at 11:29 AM ----------

or u can even try this for
Code:
tomorrow

DATE_STAMP=`TZ=CST+24 date +%m/%d/%Y` 

yesday

DATE_STAMP=`TZ=CST-24 date +%m/%d/%Y`

# 5  
Old 09-19-2012
Tomorrow:
Code:
perl -MPOSIX -e 'print strftime ("%Y-%m-%d", localtime(strftime ("%s", localtime) + 86400))'

Yesterday:
Code:
perl -MPOSIX -e 'print strftime ("%Y-%m-%d", localtime(strftime ("%s", localtime) - 86400))'

# 6  
Old 03-10-2013
Hi Zozoo,
i tried that time zone thing but IST+24 gives me the yesterday date and IST-24 gives me the tommorow's date.. i dono wats wrong with that
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to compare two files of todays date and yesterday's date

hi all, How to compare two files whether they are same are not...? like i had my input files as 20141201_file.txt and 20141130_file2.txt how to compare the above files based on date .. like todays file and yesterdays file...? (4 Replies)
Discussion started by: hemanthsaikumar
4 Replies

2. Shell Programming and Scripting

How to append date to filename, but base it on yesterday's date?

Hello, I'd like to write a monthly archive script that archives some logs. But I'd like to do it based on yesterday's date. In other words, I'd like to schedule the script to run on the 1st day of each month, but have the archive filename include the previous month instead. Here's what I... (5 Replies)
Discussion started by: nbsparks
5 Replies

3. Shell Programming and Scripting

Get yesterday date

Hi Friend, i am using OS HP-UX vvftf320 B.11.11 U 9000/800 511076331 unlimited-user license now i have used below command but it giving today's date. i need your help to get yesterdate. Please correct me. date +"%d%m%Y%H%M%S" -d "1 days ago Thanks in advance, Jewel (3 Replies)
Discussion started by: Jewel
3 Replies

4. Shell Programming and Scripting

[Solved] Replace yesterday date with today's date except from the first line

Hello, I have a file like this: 2012112920121130 12345620121130msABowwiqiq 34477420121129amABamauee e7748420121130ehABeheheei in case the content of the file has the date of yesterday within the lines containing pattern AB this should be replaced by the current date. But if I use... (3 Replies)
Discussion started by: Lilu_CK
3 Replies

5. UNIX for Dummies Questions & Answers

Move Command with Adding Yesterday date

How to move a file with mv command by adding yesteday's date(YYYYMMDD) at the end Example: /a/abc.txt should be moved to the same folder /a/abc_yyyymmdd.txt YYYYMMDD should be yesterday's date (2 Replies)
Discussion started by: eskay
2 Replies

6. Shell Programming and Scripting

Need help in Shell Script comparing todays date with Yesterday date from Sysdate

Hi, I want to compare today's date(DDMMYYYY) with yesterday(DDMMYYYY) from system date,if (today month = yesterday month) then execute alter query else do nothing. The above requirement i want in Shell script(KSH)... Can any one please help me? Double post, continued here. (0 Replies)
Discussion started by: kumarmsk1331
0 Replies

7. Shell Programming and Scripting

grep tomorrow's date

Hi guys, I need to find tomorrows date in date fomat and should be in variable. as I need to grep this date in a flat file ie. if today's date is '09 JAN 2009' output should be '10 JAN 2009' unix/perl script will be fine. (21 Replies)
Discussion started by: ssachins
21 Replies

8. UNIX for Dummies Questions & Answers

Date change to tomorrow

I have this code in a script that says it is calculating current date: cur_date=`date -u +%m/%d/%Y` If the script is run today during the day, it returns 12/11/2008 If the script is run today during the night, it returns 12/12/2008 Why does it return tomorrow's date if it was run at... (2 Replies)
Discussion started by: mkoay
2 Replies

9. Shell Programming and Scripting

Compare date from db2 table to yesterday's Unix system date

I am currently running the following Korn shell script which works fine: #!/usr/bin/ksh count=`db2 -x "select count(*) from schema.tablename"` echo "count" I would like to add a "where" clause to the 2nd line that would allow me to get a record count of all the records from schema.tablename... (9 Replies)
Discussion started by: sasaliasim
9 Replies

10. Shell Programming and Scripting

yesterday date month/date

Hi expert, I want to retrieve yesterday su log. How to calculate and assign variable value ( 06/23 ) in myVariable ? #!/bin/sh myVariable=yesterday date in month/date cat /var/adm/sulog | grep $myVariable > file.txt many thanks! (5 Replies)
Discussion started by: skully
5 Replies
Login or Register to Ask a Question