web-dev-qa-db-ja.com

UNIXで指定された日付に基づいて平日を取得するにはどうすればよいですか

%m-%d-%Y形式の指定された日付から、それが何日かを判断する必要がありますコマンドを手伝ってください

2017年9月1日のような日付を渡すと、出力は金曜日になるはずです。

5
Divya S
DayOfWeek=$(date +%A)

これにより、曜日が生成されますmonday-sunday入力日が厳密にMM-DD-YYYYの形式である場合は、次を使用します

IFS='-' read -ra ADDR <<< "09-01-2017"
formattedDate=${ADDR[2]}-${ADDR[0]}-${ADDR[1]}
date -d  $formattedDate +%A

最初の行は日付のコンポーネントをトークン化し、2番目の行はそれらを再配置します

3
Rajeev Ranjan

あなたがこのようなあなたの日付を持っているならば:

d="09-01-2017"

「YYYY-MM-DD」に再フォーマットする必要があります

date -d $(echo $d|awk -F- '{print $3 "-" $1 "-" $2}') +%A # DOW 
2

とてもシンプルです。正しいオプションを指定してdateコマンド自体を使用するだけです。

$ date -j -f '%m-%d-%Y' "09-01-2017" +'%A'
Friday
2
nagendra547