首页 > 解决方案 > 使用 Bash 计算今天和本月下一个重复日期之间的距离?

问题描述

我订阅了每月同一天到期的 LTE 服务。例如,如果我在 2 月 8 日第一次付款,它将在 3 月 8 日、4 月等到期,所以它不是基于 28 天的订阅,但两次发生之间的距离是可变的。

现在,考虑到每个月都不同,我需要编写一个 shell 脚本来计算从今天到下一个重复截止日期的距离(以天为单位,或者可能是天 + 小时)。

我正在考虑使用 cal 命令,但我不知道该怎么做。我需要将结果放在一个变量中(在一个已经完成但使用固定 28 天订阅的 bash 脚本中),以便重新计算剩余带宽并相应地对其进行调整。

标签: linuxbashdatedistancelte

解决方案


注意 $days_diff 将是一个整数(即没有小数)

days_diff=$(( (`date -d $B +%s` - `date -d "00:00" +%s`) / (24*3600) ))

推荐阅读