![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| convert date format YYYYMMDD to MM/DD/YYYY | nasirgondal | Shell Programming and Scripting | 8 | 04-08-2009 10:56 AM |
| Yesterday in i.e. May 09 and 05/09 format | Daniel Gate | Shell Programming and Scripting | 3 | 05-20-2008 04:59 PM |
| How can i get the yesterday's date in YYYYMMDD format | prasadsr | HP-UX | 4 | 01-19-2007 09:52 AM |
| Date increment in the format "YYYYMMDD" | ganapati | Shell Programming and Scripting | 4 | 08-02-2006 11:45 AM |
| get yesterday date in yyyymmdd format | hk_newbie | UNIX for Dummies Questions & Answers | 2 | 12-14-2001 03:32 PM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
|||||
|
I wrote this script to convert julian date into dd-mm-yyyy format. You could use this to get yesterday's date. You just have to get today's julian date (get this using `date +%j`) and subtract 1 from it. This will get you yesterday's julian date. Give this as the second argument to the script. The first argument is the present year in the YYYY format.
Note: I have changed the output so that it prints YYYYmmdd. [edit] Also this script will blindly convert whatever the julian date that is given to it. No error checking is done - so if you give the julian date as 0, the output you get for this year is 20050100 [/edit] Code:
#!/bin/sh
check_done() {
if [ $month -eq 1 -o $month -eq 3 -o $month -eq 5 -o $month -eq 7 -o $mo
nth -eq 8 -o $month -eq 10 -o $month -eq 12 ]
then
daysofmth=31
elif [ $month -eq 2 ]
then
if [ `expr $year % 100` -eq 0 -a `expr $year % 400` -eq 0 ]
then
daysofmth=29
elif [ `expr $year % 100` -ne 0 -a `expr $year % 4` -eq 0 ]
then
daysofmth=29
else
daysofmth=28
fi
elif [ $month -eq 4 -o $month -eq 6 -o $month -eq 9 -o $month -eq 11 ]
then
daysofmth=30
fi
julday=`expr $julday - $daysofmth`
if [ $julday -lt 0 ]
then
done=1
julday=`expr $daysofmth + $julday`
elif [ $julday -eq 0 ]
then
done=1
julday=$daysofmth
fi
}
######### main script starts here
if [ $# -ne 2 ]
then
echo "Usage: fromjul <yyyy> <julian day>"
exit 1
fi
year=$1
julday=$2
month=0
done=0
while [ $done -ne 1 ]
do
month=`expr $month + 1`
check_done
done
printf "%.4d%.2d%.2d\n" $year $month $julday
|
|
||||
|
Code:
date | awk '{printf"%4d%2d%2d\n",$6,$2,($3-1)}' | sed 's/ /0/g'
here is the modification of the aboe one: date '+%y:%m:%d' | awk -F":" '{printf"20%2d%2d%2d\n",$1,$2,($3-1)}' | sed 's/ /0/g' |
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|