linux - Shell脚本查找从今天起12个工作日(忽略节假日)的日期

标签 linux bash

我在尝试编写一个 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/

相关文章:

linux - 查找特定文件或特定文件集的重复项的最佳方法

mysqldump 的 bash 脚本

linux - 允许用户仅选择一组显示的 ID

bash - supervisord 停止子进程

linux - 启动时禁用键盘 FnLock

linux - Bash 脚本 - ~/.ssh/中不存在文件

c - 有没有办法将 '-lm' 设置为 GCC 的默认值?

linux - 我怎样才能 cat 一个远程文件来读取 Bash 中的参数?

ruby-on-rails - 在 Rails 中使用 Capistrano 部署时无法运行/etc/profile.d/chruby.sh

linux - 找不到 Linux 上的共享库