プロが教えるわが家の防犯対策術!

dateコマンドで出力した結果が、設定されている日付までの残り日数を計算する方法は?

dateの出力形式
/bin/date +%d-%b-%Y
06-Jun-2003

設定日 : 30-Sep-2004

A 回答 (2件)

こーゆーのは楽しいですね.



man date より.

%s 1970-01-01 00:00:00 UTC からの秒数 (標準外の拡張)

-d datestr, --date datestr
 現 在の時刻・日付の代わりに、 datestr で指定された
 時刻・日付を表示する。

これらのオプションと,一日の秒数 = 86400 を組み合わせて,bash2 の計算機能 $(( )) を使うと,こんな感じ.

echo $(( (`date +%s -d 30-Sep-2004` - `date %s`)/86400 ))

この回答への補足

回答ありがとうございました。教えていただいたdateコマンドのオプション"%s"は、Linux環境では確認できましたが、Solarisでは使えないようですが、Linuxのみのオプションですかね?また、bash2の、Solaris用のアーカイブってどこかにありますか?

補足日時:2003/06/09 10:04
    • good
    • 0

> Solarisでは使えないようですが、Linuxのみのオプションですかね?



Linux というより,GNUの拡張のようですね.
GNU の coreutils に含まれる date が,この機能を持っています.
Solaris環境はありませんが,HP-UX ではすんなりコンパイルできました.

ftp://ftp.kddlabs.co.jp/GNU/coreutils

> bash2の、Solaris用のアーカイブってどこかにありますか?

あると思いますけど,知りません.計算自体は,シェルを入れ替えるまでもなく,expr で可能です.

expr \( `date +%s -d 30-Sep-2004` - `date +%s` \) / 86400

でも,どうせ標準コマンドで用が足りないのなら,自分で簡単なプログラムを書いたほうが良いような気がします.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A