使用变量获取下一个工作日

使用变量获取下一个工作日

我想从脚本生成的日期中提取下一个工作日并分配给变量last_day

假设变量last_day有一个值,last_day=20190426我想获取next_day=2019-04-29if value of last_day=2019-04-17then next_day=2019-04-18。场景是,如果 last_day 是星期五,则打印 next_day 作为星期一,否则打印下一天的日期。

不知道如何使下面的命令与变量一起使用。

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")

答案1

尝试这个,

 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"

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

  • 如果输入落在一周的第五天(星期五),则会加 3。
  • 如果输入落在一周的第六(周六)天,则会加 2。
  • 否则为一周中的所有其他天添加 1

相关内容