计算 Unix 中两个日期之间的月差?

Dje*_*eah 3 unix bash shell sh unix-timestamp

我有两个格式为“YYYYMM”的变量

DATE1=201712
DATE2=201801
Run Code Online (Sandbox Code Playgroud)

在unix中如何计算这两个日期变量之间的月份差异?

tsh*_*ono 5

怎么样:

#!/bin/bash

DATE1=201712
DATE2=201801

y1=${DATE1:0:4}
m1=${DATE1:4:2}

y2=${DATE2:0:4}
m2=${DATE2:4:2}

diff=$(( ($y2 - $y1) * 12 + (10#$m2 - 10#$m1) ))
echo $diff
Run Code Online (Sandbox Code Playgroud)

  • 当 DATE1=201709 和 DATE2=201802 时,上述方法失败 (2认同)