変数を使用して次の営業日を取得する

変数を使用して次の営業日を取得する

スクリプトによって生成された日付から次の作業日を抽出して変数に割り当てたいと思います。last_day

変数last_dayに値があると仮定すると、thenのif値を取得last_day=20190426したいと思います。シナリオは、last_dayが金曜日の場合はnext_dayを月曜日に印刷し、そうでない場合は翌日の日付を印刷することです。next_day=2019-04-29last_day=2019-04-17next_day=2019-04-18

以下のコマンドを変数と連携させる方法がわかりません。

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"

入力はいつでも可能です。だから

  • 入力した内容が週5日(金曜日)の場合、3つが追加されます。
  • 入力した内容が6番目(土曜日)曜日の場合、2つが追加されます。
  • それ以外の場合は、他のすべての曜日に1を追加します。

関連情報