Calculating 7 days ago date for the given Argument


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Calculating 7 days ago date for the given Argument
# 1  
Old 07-01-2011
Calculating 7 days ago date for the given Argument

Hi

I have shell script and I am facing the below issue to integrate the date calculation to the the script.

If I give the $1 as the date(20110701) then I need to get the 7 days ago date for the same format.(20110624).

At first I thought its a simple one to handle and I did a search in the forum but couldn't get this if we provide the date as the $1 argument.

For example:

if $1 = 20110601 ( The format I would provide)
then I need to calculate the date for 7 days ago i.e. 20110525.

Here I am not using the system current date but instead I have to calculate the 7 days ago date for the date that the user has given.

Could someone please help me out in this. Its really appreciated.
# 2  
Old 07-01-2011
What is your system? What is your shell? This has a huge effect on the tools you have available for playing with dates. On some systems you can just date -d and print dates and timestamps for whatever time you want. Others might have awk or perl extensions for it. And a few obnoxious ones have no elegant way to handle it and must use an enormous ksh script to parse dates the hard way.
# 3  
Old 07-01-2011
Hi

I am using Linux system -->

Linux xbdp5898pap 2.4.21-50.ELsmp #1 SMP Tue May 8 17:18:29 EDT 2007 i686 i686 i386 GNU/Linux

I am using Bash Shell.

Like if I use date -d then it would take the system date and then we can print wat we want.But Instead I would like to use the User's date(20110701) and then calculate the 7 days ago date (20110624) and print as an output.

Thanks for your thoughts. Really appreciate for your time.
# 4  
Old 07-01-2011
You have GNU date, which supports -d, letting you input whatever date you want which makes this tons easier. Working on something
# 5  
Old 07-01-2011
[edit] You stealth-edited my stealth edit, Jim Smilie
[edit] whoops, %Y%m%d not %Y%m%s!

Code:
# Get epoch seconds
USERDATE=$(date +%s -d 20110701)
# Subtract 1 week
((USERDATE -= (60*60*24*7) ))

# Convert from epoch seconds into YYYYMMDD.
# -d assumes strings beginning with @ are epoch seconds.
D=$(date -d "@$USERDATE" +"%Y%m%d")
echo "One week previous was $D"


Last edited by Corona688; 07-01-2011 at 05:02 PM..
# 6  
Old 07-01-2011
This can help too:
Code:
~/unix.com$ date -d '7 days ago'

These 2 Users Gave Thanks to tukuyomi For This Post:
# 7  
Old 07-01-2011
Hi Corona688,

Thanks for your reply.

But I am getting an error and couldn't figure this out.
Code:
#!/bin/sh

# Get epoch seconds
USERDATE=$(date +%s -d 20110701)
# Subtract 1 week
((USERDATE -= (60*60*24*7) ))

# Convert from epoch seconds into YYYYMMDD.
# -d assumes strings beginning with @ are epoch seconds.
D=$(date -d "@$USERDATE" +"%Y%m%d")
echo "One week previous was $D"

Code:
$ ./date.sh
date: invalid date `@1308888000'

One week previous was

Last edited by rbatte1; 07-05-2016 at 04:56 AM.. Reason: Code tags
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Get a given date and subtract it to 5 days ago

Hi all, I have been researching to obtain SSL certification expiry for most of our webistes. For some cases, some hosts where not directly accessible so i finally got a solution working with curl using my proxy. This lists the expiry date which i'm finally looking for. # curl --proxy... (4 Replies)
Discussion started by: nms
4 Replies

2. UNIX for Beginners Questions & Answers

How to find a file that's modified more than 2 days ago but less than 5 days ago?

How to find a file that's modified more than 2 days ago but was modified less than 5 days ago by use of any Linux utility ? (4 Replies)
Discussion started by: abdulbadii
4 Replies

3. UNIX for Advanced & Expert Users

N days ago

Hi, the following gives today $(date '+%d%m%y') For example 210111 for today (21 of january 2011). How can I have n days ego ? For example 160111 for 5 days ego ? thank you. (3 Replies)
Discussion started by: big123456
3 Replies

4. UNIX for Dummies Questions & Answers

Clarification on '1 days ago' in date command [Found answer, posted within]

I know the topic of getting yesterday's date has been covered ad nauseum, but I just want to be clear on something. I recently started using the command date --date='1 days ago' '+%m/%d/%y' to get yesterday's date and it's been working great. I just want to be certain that it is going to... (1 Reply)
Discussion started by: DeCoTwc
1 Replies

5. Shell Programming and Scripting

Date within a timeframe 2 days ago

How could I using the following example, change it to show 2 days ago within the same time frame 0600 AM to 0600 AM let foo=`date "+(1%H-106)*60+1%M-100"` bar=foo+1440 find . -mmin +$foo -mmin -$bar | tr -s '/','-' '^' | cut -f2,3 -d"^" | tr -s '^' ' ' | Please use code tags (7 Replies)
Discussion started by: freddie999
7 Replies

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

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

8. Shell Programming and Scripting

Find the file from 15 days ago

How can I get difference date between today and 15 days ago and all filename is was created before 15 days ago? It has to be korn shell script. Thanks. (2 Replies)
Discussion started by: YoungBlood
2 Replies

9. UNIX for Dummies Questions & Answers

file was created before 15 days ago.

How can I get difference date between today and 15 days ago and all filename is was created before 15 days ago? It has to be korn shell script. Thanks. (1 Reply)
Discussion started by: YoungBlood
1 Replies

10. Shell Programming and Scripting

Function 7 days ago

Please tell me how can I wirte a function to return the date 7 days ago by using calendar command? :confused: (2 Replies)
Discussion started by: LAY
2 Replies
Login or Register to Ask a Question