在AIX上使用ksh从给定日期开始的昨天和下一个日期

时间:2017-09-27 05:35:34

标签: unix ksh aix

我试图编写一个脚本,需要计算日期-1和日期+ 1

从变量

中读取日期

echo 2017-09-30 |阅读YYYY MM DD

如何在2017 OS-01上尝试在AIX OS上打印下一个日期。

这是它的一段代码

date ()
{
   DAY=$D1
   TODAY=$D1
   DAY1=$D1
   echo $DAY1| read YYYY MM DD
   let DD=DD+1
   DD=`printf %02d $DD`
   if [[ $DD -eq 0 ]] then
   let MM=MM-1
   MM=`printf %02d $MM`
   if [[ $MM -eq 0 ]] then
   let YYYY=YYYY-1
   let MM=12
   let DD=31
   fi
   DD=`cal $MM $YYYY|grep . |fmt -1|tail -1`
  fi
  NEXTDAY=`echo $YYYY-$MM-$DD`
  echo $NEXTDAY
  }

2 个答案:

答案 0 :(得分:0)

明天:

date --date='tomorrow'
date --date='1 day'

昨天:

date --date='yesterday'
date --date='1 day ago'

如何将时间/日期格式保存到shell变量?

$ NOW=$(date +"%m-%d-%Y")

显示变量use echo命令:

$ echo $NOW

答案 1 :(得分:0)

我昨天在https://stackoverflow.com/a/21283578/3220113

回答

您可以使用相同的方法在昨天和明天使用,请记住夏令时:

# Tomorrow
echo "$(TZ=GMT-30 date +%Y-%m-%d)
$(TZ=GMT-20 date +%Y-%m-%d)" | grep -v $(date +%Y-%m-%d) | head -1

# Yesterday
echo "$(TZ=GMT+30 date +%Y-%m-%d)
$(TZ=GMT+20 date +%Y-%m-%d)" | grep -v $(date +%Y-%m-%d) | tail -1