将可变日期增加一个月

将可变日期增加一个月

有没有办法在不使用该选项的情况下将输入日期增加一个月date -d?我的机器没有这个功能。

样本:

$yearmonth=201912

预期输出:

201912
202001

答案1

POSIXly(假设$yearmonth没有前导零):

case $((yearmonth += 1)) in
  (*13) yearmonth=$((yearmonth + 100 - 12))
esac

使用 ksh/bash/zsh,您可以将其缩短为:

((++yearmonth % 100 <= 12)) || ((yearmonth += 100 - 12))

答案2

或者

(( yearmonth += ((yearmonth % 100) == 12)?(100 - 11):1 ))

相关内容