Adding days to an input date.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Adding days to an input date.
# 8  
Old 02-20-2009
Hard_AIX,
When I run those 3 lines I get the output as '2/25/09'.

But I want the date to be calculated from the variable date.

Eg:
When I run the below code I still get the output as '2/25/09' though my variable date is '02/01/09'

Date1='2009-02-01 00:00:00 +0000'
date2=$(/opt/freeware/bin/date --date="$Date1" -d "+5 day" +"%D")
echo $date2

It is ignoring the variable date.

Thanks,
Sud
# 9  
Old 02-20-2009
Oh. Yes, you are right. It only works from the current date and I don't know if it can be made to work from another date.


In the past, on my system, I have used a shell script called shift_date. This is a slightly newer version than the one I have http://www.williamrobertson.net/code/shift_date.txt maybe you can get that to work.


here is a sample run from my system:
Code:
$ shift_date 20090101 -1
20081231

# 10  
Old 02-20-2009
Thank you Sir but how do I use shift_date code..do I need to put it in some libraries? I created shift_date.ksh file by copying it from windows text file but ended up with ^M and I removed ^M using the following script.

cat -vet shift_date.ksh | sed -e s/\\^M\\$//g > temp_ftp_file.ksh
rm -f shift_date.ksh
mv temp_ftp_file.ksh shift_date.ksh

But I ended up with ^I instead of spaces.

Below is the extract from the file


^I^I^Ielif (( testyear % 400 == 0 ))
^I^I^Ithen
^I^I^I^Ileapyearanswer=${TRUE}
^I^I^Ifi
^I^Ielse
^I^I^Ileapyearanswer=${TRUE}
^I^Ifi
^Ifi

Please tell me how to remove that character.

Thanks.
# 11  
Old 02-20-2009
Go to the url. On that page press ctrl-A (Select all) then crtl-c (copy).

On your aix system, open up your editor (vi?) make sure your are in insert mode and paste the copied text. Save it to a file called shift_date. Here I saved it into /usr/local/bin/shift_date but you can put in your home directory or /usr/bin/shift_date.

Then change persmissions on the file to make it executable;

chmod +x /pathto/shift_date

if the directory you are testing from is on your path you can just execute it directly as I did in the example above. Or put the path name on shift_date and execute it like this
/usr/local/bin/shift_date 20090101 -1
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. HP-UX

awk command in hp UNIX subtract 30 days automatically from current date without date illegal option

current date command runs well awk -v t="$(date +%Y-%m-%d)" -F "'" '$1 < t' myname.dat subtract 30 days fails awk -v t="$(date --date="-30days" +%Y-%m-%d)" -F "'" '$1 < t' myname.dat awk command in hp unix subtract 30 days automatically from current date without date illegal option error... (20 Replies)
Discussion started by: kmarcus
20 Replies

2. Shell Programming and Scripting

Adding days to date

Hi, please can somebody let me know the easiest way to add days to a date. I can do this in perl but would like to able to do it in a shell script. Desired output would be: date +'%Y-%m-%d' + 10 = 2016-05-02 Thank you (8 Replies)
Discussion started by: andy391791
8 Replies

3. Shell Programming and Scripting

UNIX date fuction - how to deduct days from today's date

Hi, One of my Unix scripts needs to look for files coming in on Fridays. This script runs on Mondays. $date +"%y%m%d" will give me today's date. How can I get previous Friday's date.. can I do "today's date minus 3 days" to get Friday's date? If not, then any other way?? Name of the files is... (4 Replies)
Discussion started by: juzz4fun
4 Replies

4. Shell Programming and Scripting

Adding days to system date then compare to a date

Hi! I am trying to read a file and every line has a specific date as one of its fields. I want to take that date and compare it to the date today plus 6 days. while read line do date=substr($line, $datepos, 8) #date is expected to be YYYYMMDD if ; then ...proceed commands ... (1 Reply)
Discussion started by: kokoro
1 Replies

5. Shell Programming and Scripting

Number of days between the current date and user defined date

I am trying to find out the number of days between the current date and user defined date. I took reference from here for the date2jd() function. Modified the function according to my requirement. But its not working properly. Original code from here is working fine. #!/bin/sh... (1 Reply)
Discussion started by: hiten.r.chauhan
1 Replies

6. Windows & DOS: Issues & Discussions

Adding or subtracting days from current date in batch script

Hi, I'm writing an batch file to create report In the batch file iam passing two arguments:startdate and finishdate Ex: startdate=07-sep-2009 finishdate=07-sep-2011 I need to have script that takes command line argument as input and gives me out currentdate last year and current date... (2 Replies)
Discussion started by: anand1773
2 Replies

7. Shell Programming and Scripting

Date after 5 days from current date in YYYYMMDD format

Hello Experts, How do i get date after 5 days from current date in YYYYMMDD format? How do you compare date in YYYYMMDD format? Thanks (8 Replies)
Discussion started by: needyourhelp10
8 Replies

8. Shell Programming and Scripting

how to get what date was 28 days ago of the current system date IN UNIX

Hi, Anybody knows how to get what date was 28 days ago of the current system date through UNIX script. Ex : - If today is 28th Mar 2010 then I have to delete the files which arrived on 1st Mar 2010, (15 Replies)
Discussion started by: kandi.reddy
15 Replies

9. Shell Programming and Scripting

date for two days or 3 days ago

i need a script that can tell me the date 2 days ago or 3 days ago. please help (7 Replies)
Discussion started by: tomjones
7 Replies

10. UNIX for Dummies Questions & Answers

adding or subtracting days in the o/p of date

how can we add or subtract days from the output of date command in unix... like if i want to subtract a day from the result of date command like this.. v_date=`date +%Y%m%d` this wud give me 20080519 now i want to subtract one day from this.. so tht it wud give me 20080518.. how do i do... (1 Reply)
Discussion started by: St.Fartatric
1 Replies
Login or Register to Ask a Question