何時何分何十秒 地球が何回回った時?
小学生が言うアレじゃないですが、仕事でバッチ処理やったり、自宅で勉強がてら「とあるヘビーな計測」を行う時などに、「日オーダで処理していた際に、どれ位の時間がかかったか秒だけでなくて、何日何時間何分何秒で知りたい」とか思うことあり、その際に「dateコマンドとかのパラメータやコマンドの組み合わせで1行位で簡単に求められるんじゃないの?」なんて思っていたのですが、思いつきませんでした。(ヤレヤレ…自分の頭が固すぎて仕方ない…)
仕方がないので馬鹿正直に書きました…
仕方がないので馬鹿正直に書きました…
【ソース [time-calc.sh]】
【出力結果】
$ bash time-calc.sh "2014-01-12 05:40:32" "2014-01-13 16:25:11"
1 day 10 hour 44 minute 39 second
本当はもっと簡ぁ~ん単ぁ~んに出せそうなものなのですが…
あと、アンドロー梅田(タブレット)のsh(やbash)で実行しようとしたら、dateコマンドのパラメータがアギギ…だったのでゴソゴソと…
(つか、コンパイルされていたヤツって、そーいう仕様だったんだ…φ(.. )メモメモ)

(・∀・)イイ!!
ちなみにExcel 201xだったら楽勝ですねw

VBA(LibreOffice Basic)で組んで結果を出力しても良しw
まぁ、Linux上のバッチ処理中にExcel(LibreOffice)をかますなんてないんだけどw
という感じで、プチ頭の体操1・2・3!
#!/bin/bash
if [ $# != 2 ]; then
echo "argument is [start_time] [end_time]."
echo "format (YYYY-MM-DD H24:MI:SS)"
exit 1
fi
START_TIME=$(date -d "$1" +%s)
END_TIME=$(date -d "$2" +%s)
TOTAL_SEC=$(($END_TIME - $START_TIME))
DAY=$(($TOTAL_SEC / 60 / 60 / 24))
DAY_BASE=`expr $DAY \* 24 \* 60 \* 60`
HOUR=`expr \( $TOTAL_SEC - $DAY_BASE \) / 60 / 60`
HOUR_BASE=`expr $HOUR \* 60 \* 60`
MINUTE=`expr \( $TOTAL_SEC - \( $DAY_BASE + $HOUR_BASE \) \) / 60`
MINUTE_BASE=`expr $MINUTE \* 60`
SEC=`expr $TOTAL_SEC - \( $DAY_BASE + $HOUR_BASE + $MINUTE_BASE \)`
echo "$DAY day $HOUR hour $MINUTE minute $SEC second"
【出力結果】
$ bash time-calc.sh "2014-01-12 05:40:32" "2014-01-13 16:25:11"
1 day 10 hour 44 minute 39 second
本当はもっと簡ぁ~ん単ぁ~んに出せそうなものなのですが…
あと、アンドロー梅田(タブレット)のsh(やbash)で実行しようとしたら、dateコマンドのパラメータがアギギ…だったのでゴソゴソと…
(つか、コンパイルされていたヤツって、そーいう仕様だったんだ…φ(.. )メモメモ)

(・∀・)イイ!!
ちなみにExcel 201xだったら楽勝ですねw

VBA(LibreOffice Basic)で組んで結果を出力しても良しw
まぁ、Linux上のバッチ処理中にExcel(LibreOffice)をかますなんてないんだけどw
という感じで、プチ頭の体操1・2・3!
コメント
コメントの投稿
« アニメを見ていたら l Home l Kさんと初対面 »