真夜中の時間(秒)を見つけるには?

真夜中の時間(秒)を見つけるには?

このdateプログラムを使用して真夜中からの秒数を計算するにはどうすればよいですか?

ベストアンサー1

競合状態を避けるために、GNUの日付はまだ仮定されています。

eval "$(date +'today=%F now=%s')"
midnight=$(date -d "$today 0" +%s)
echo "$((now - midnight))"

以下を使用して、zsh内部的にこれを実行できます。

zmodload zsh/datetime
now=$EPOCHSECONDS
strftime -s today %F $now
strftime -rs midnight %F $today
echo $((now - midnight))

夏時間スイッチがない時間帯では便利に次のようにできます。

eval "$(date +'h=%H m=%M s=%S')"
echo "$((${h#0} * 3600 + ${m#0} * 60 
+ ${s#0}))"

それがすることは先行ゼロを削除することですが、これは 、${X#0}などの一部のシェルで問題を引き起こします (シェルが無効な 8 進数と文句を言うところ)。bashdashposh0809

おすすめ記事