[Solved] Previous Year Date


 
Thread Tools Search this Thread
# 1  
[Solved] Previous Year Date

Hi Gurus,

I would like to get the date for the previous year based on the date I specify.
For e.g. If I input today's date (i.e. 20130422) I need to get 20120422.

We don't have GNU and use K Shell. Any help is highly appreciated.

Thanks
Shash
# 2  
Hi, try this
Code:
X=20130422
Y=$(echo $X|cut -c1-4)
M=$(echo $X|cut -c5-6)
D=$(echo $X|cut -c7-8)
Y1=$(( Y - 1 ))
if [[ $M -eq 2 ]] && [[ $D -eq 29 ]]
then
D=28
fi
echo ${Y1}${M}${D}

# 3  
Here is another way to do this just using Korn shell built-ins (and doing minimal error checking):
Code:
#!/bin/ksh
if [ $# -ne 1 ] || [[ $1 != [0-9][0-9][0-9][0-9][01][0-9][0-3][0-9] ]]
then    printf "Usage: %s YYYYMMDD\n" "${0##*/}" >&2
        exit 1
fi
y="$((${1%????} - 1))"
md="${1#????}"
if [ "$md" = 0429 ]
then    md=0428
fi
echo $y$md

# 4  
Code:
#!/bin/ksh93

$ date="20130422"
$ printf "%(%Y%m%d)T\n" "$date 12 months ago"

Produces 20120422
# 5  
The solution given by franzpizzo worked for me. Thanks a lot for franzpizzo & others.
 

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Science: Mathematics
Difficulty: Easy
A scalene triangle has two sides of equal length.
True or False?

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How bash treats literal date value and retrieve year, month and date?

Hi, I am trying to add few (say 3 days) to sysdate using - date -d '+ 3 days' +%y%m%d and it works as expected. But how to add few (say 3 days) to a literal date value and how bash treats a literal value as a date. Can we say just like in ORACLE TO_DATE that my given literal date value... (2 Replies)
Discussion started by: pointers1234
2 Replies

2. Shell Programming and Scripting

Script to get previous date for the given input date..

hi all, need a script or command to get the previous date for the given input date... like in my script i will pass date as input parameter like 2014-12-01 and i want the output as previous date.. ie.. 2014-11-30 (2 Replies)
Discussion started by: hemanthsaikumar
2 Replies

3. UNIX for Dummies Questions & Answers

Command to print previous year in UNIX

hi all, I use date +%Y which gives Current year. Requirement: I want previous year to be printed. Please help me. Note: I tried date +%d/%m/%Y -d "-1 years" which is not working. (10 Replies)
Discussion started by: wasim999
10 Replies

4. Shell Programming and Scripting

Find week of the year for given date using date command inside awk

Hi all, Need an urgent help on the below scenario. script: awk -F"," 'BEGIN { #some variable assignment} { #some calculation and put values in array} END { year=#getting it from array and assume this will be 2014 month=#getting it from array and this will be 05 date=#... (7 Replies)
Discussion started by: vijaidhas
7 Replies

5. UNIX for Dummies Questions & Answers

[Solved] Using date command, getting previous day

Legends, i need to get previous day using date command. Can you please help. sdosanjh:/home> date +%m%d%y 011514 i tried -d '-1 day' but it is not working (5 Replies)
Discussion started by: sdosanjh
5 Replies

6. Shell Programming and Scripting

Help with getting last date of previous month and first date of previous 4th month from current date

I have requirment to get last date of previous month and the first date of previous 4th month: Example: Current date: 20130320 (yyyymmdd) Last date of previous month: 20130228 (yyyymmdd) First date of previous 4th month: 20121101 (yyyymmdd) In my shell --date, -d, -v switches are not... (3 Replies)
Discussion started by: machomaddy
3 Replies

7. Shell Programming and Scripting

finding the previous day date and creating a file with date

Hi guys, I had a scenario... 1. I had to get the previous days date in yyyymmdd format 2. i had to create a file with Date inthe format yyyymmdd.txt format both are different thanks guys in advance.. (4 Replies)
Discussion started by: apple2685
4 Replies

8. Shell Programming and Scripting

Specify a previous date as start date in shell script

Hi, I am trying to modify a script which accepts date in format dd/mm/yy. I am trying to modify the script so that it retrieves the date that was 15 days earlier from today as start date. Eg.if today is 05/09/2006, the script should retrieve 21/08/2006 as start date. Is there any script/code to... (2 Replies)
Discussion started by: ritzwan0
2 Replies

9. UNIX for Dummies Questions & Answers

How to find Previous date and Coming date

Hi All, How to find a date which is 7 days from the current date as well as how to find a date which is 7 days before this current date. Urgently i need help. Thanks in Advance Regards Arunava (2 Replies)
Discussion started by: arunava_maity
2 Replies

Featured Tech Videos