Date

使用變數獲取下一個工作日

  • May 3, 2019

我想從腳本生成的日期中提取下一個工作日並分配給變數last_day

假設變數last_day具有last_day=20190426我想獲得的next_day=2019-04-29值,如果值為last_day=2019-04-17then next_day=2019-04-18。場景是如果 last_day 是 friday 列印 next_day 為 monday else 列印次日日期。

不知道如何使以下命令與變數一起使用。

date +%Y-%m-%d -d "+$(( ( $(date +%w)==5 )?3:1 )) days"

試過這個,但它不工作。

next_day=$(date +%Y-%m-%d -d "+$(( ( $(${last_day} +%w)==5 )?3:1 )) days")

試試這個,

last_day=20190426
date -d "$last_day +$( if [ `date -d $last_day +%w` == 5 ]; then echo 3; elif [ `date -d $last_day +%w` == 6 ]; then echo 2; else echo 1; fi ) days" +"%Y%m%d"

輸入可以是任何一天。所以

  • 如果輸入落在一周中的第 5 天(星期五)將加 3。
  • 如果輸入落在一周中的第 6 天(星期六)將加 2。
  • 否則為一周中的所有其他日子加 1

引用自:https://unix.stackexchange.com/questions/516735