我想使用 cal 命令或 date 命令显示当前日期,然后我希望它显示当前日期之前的 3 个月,然后将这 3 个月中的所有天数累加到当前日期。有没有办法做到这一点?
所以今天的日期显示为:
Fri Dec 19 13:23:36 GMT 2014
3个月前是:
Fri Sep 19 13:23:36 GMT 2014
我想要Linux将9月19日到12月19日的所有天数相加,然后显示该计算的结果。
答案1
bash
和 GNUdate
#grab today's date in YYYYMMDD format
today=$(date +%Y%m%d)
#grab date as of 3 months ago in YYYYMMDD format
three_months_ago=$(date +%Y%m%d --date='3 months ago')
#now convert dates to "seconds since epoch" format, and then divide the difference by 60*60*24 to convert from seconds to days
printf '%d\n' $(( ($(date --date=$today +%s) - \
$(date --date=$three_months_ago +%s))/(60*60*24) ))
91