$ date_offset.sh
usage()
yesterday()
' `
month=`echo $1|awk -f " /"
' ' `
day=`echo $1|awk -f " /"
' ' `
if [ $day -eq 1 ]
then
if [ $month -eq 1 ]
then
year=`expr $year - 1`
month=12
else
month=`expr $month - 1`
fi day=`echo /`cal $month $year/`|tail -n1|awk ' ' `
else
day=`expr $day - 1`
fi echo " $year $month $day" |awk ' '
} tomorrow()
' `
month=`echo $1|awk -f " /"
' ' `
day=`echo $1|awk -f " /"
' ' `
lastday=`echo /`cal $month $year/`|tail -n1|awk ' ' `
if [ $day -eq $lastday ]
then
if [ $month -eq 12 ]
then
year=`expr $year + 1`
month=1
else
month=`expr $month + 1`
fi day=1
else
day=`expr $day + 1`
fi echo " $year $month $day" |awk ' '
} # 檢查引數數目
if [ $# -ne 2 ]
then
echo " /n呼叫出錯: 引數數目不對!/n"
usage
fi # 檢查引數1長度
if [ `expr length $1` -ne 10 ]
then
echo " /n呼叫出錯: 日期格式不正確!/n"
usage
fi tmp_year=`echo $1|awk -f " /"
' ' `
tmp_month=`echo $1|awk -f " /"
' ' `
tmp_day=`echo $1|awk -f " /"
' ' `
if ! expr $tmp_year + $tmp_month + $tmp_day >/dev/null 2>&1
then
echo " /n呼叫出錯: 日期格式不正確!/n"
usage
fi if [ `expr length $tmp_year` -ne 4 ]
then
echo " /n呼叫出錯: 日期格式不正確!/n"
usage
fi if [ $tmp_month -lt 1 ] || [ $tmp_month -gt 12 ]
then
echo " /n呼叫出錯: 日期格式不正確!/n"
usage
fi last_day=`echo /`cal $tmp_month $tmp_year/`|tail -n1|awk ' ' `
if [ $tmp_day -lt 1 ] || [ $tmp_day -gt $last_day ]
then
echo " /n呼叫出錯: 日期格式不正確!/n"
usage
fi # 檢查引數2是否為數值
expr $2 + 0 >/dev/null 2>&1
if [ ! $? ]
then
echo " /n呼叫出錯: 日期偏移量應為整數值!/n"
usage
fi tmp_date=$1
if [ $2 -lt 0 ]
then
inc=-1
count=$2
else
inc=1
count=`expr 0 - $2`
fi while [ $count -lt 0 ]
do if [ $inc -gt 0 ]
then
tmp_date=`tomorrow $tmp_date`
else
tmp_date=`yesterday $tmp_date`
fi count=`expr $count + 1`
done
echo $tmp_date
#在要sco 5.0.5下測試通過。
計算日期的shell程式
date offset.sh usage yesterday month echo 1 awk f day echo 1 awk f if day eq1 then if month eq1 then year expr year 1 month 12 else month expr month 1...
shell日期計算
當對系統當前時間進行加減時,只需要輸入 date d 3 hour y m d h 可以獲取3小時前的時間。如果按照自己設定的時間進行加減時,不能輸入 date d 2014040722 3 hour y m d h 這樣輸出的值不正確,我測試的輸出值為 201404072121。而需要輸入 dat...
shell日期 格式和計算
man date 可以直接檢視日期的格式 列出常用的年月日 date d 2012 04 10 1 day y m d 2012 04 09 date d 2012 04 10 1 day y m d 2012 04 11 date d 1 week y m d 2012 04 15 date d ...