我在尝试编写一个bash脚本时遇到了一些麻烦,该脚本将发现日期比当前日期晚12个工作日(忽略假期,因为这会使事情复杂很多)。在这种情况下,一个工作日为星期一至星期五。

我什至不知道从哪里开始!任何起始指针都将很棒:)

最佳答案

我认为工作日是指星期一至星期五的一天(即使星期六也可能正式是工作日)。

有时 future 的十二个工作日是在三个周末之后,有时是在两个周末之后。因此,我们必须找出是星期四/星期五还是星期一/星期二/星期三还是星期六/星期日。事实证明,星期日与星期一/星期二/星期三是相同的情况,因此我们最终使用了这个:

weekday=$(date +%w)  # 0 is Sunday, 6 is Saturday

if [ $weekday -lt 4 ]  # Sunday/Monday/Tuesday/Wednesday
then
  offset=16
elif [ $weekday -lt 6 ]  # Thursday/Friday
then
  offset=18
else  # Saturday
then
  offset=17
fi

date -d "today + $offset days"

关于linux - Shell脚本可查找从今天起12个工作日(不包括节假日)的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16668451/

10-13 07:15