時刻の差

公開日: : 最終更新日:2014/01/30 未分類

記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

はてなでこんな質問をしてみた。

http://q.hatena.ne.jp/1181206676

$start = “15:16:52”;

$end = “15:29:15”;

この2つの時刻の差を “hh:mm:ss” 形式で

$diff に代入する Perl のスクリプトを提示してください。

んで、返ってきたのが以下の回答。


$start = "15:16:52";
$end = "15:29:15";
@a = split(/:/,$start);
$startsec = @a[0]*3600 + @a[1]*60 + @a[2];
@a = split(/:/,$end);
$endsec = @a[0]*3600 + @a[1]*60 + @a[2];
$diffsec = $endsec - $startsec;
@b[0] = int($diffsec / 3600);
@b[1] = int(( $diffsec % 3600 ) / 60);
@b[2] = ($diffsec % 3600 ) % 60;
$diff = sprintf("%02d:%02d:%02d",@b);

なるほど。

Perlにはsplitがあったのを忘れていた。

正規表現を使って数値を抜き出していました。

split使った方が楽でいいですね。

※追記


$startsec = @a[0]*3600 + @a[1]*60 + @a[2];

で警告が出た。


$startsec = $a[0]*3600 + $a[1]*60 + $a[2];

こうするのが正しいのかな。

関連記事

サンフランシスコのピア39にあるチャウダーズでクラムチャウダーを食す!

lolipop アップルの開発者向けイベント「WWDC2014」

ミスドのカルピスドーナツとカルピスポンデリングを食べてみた!

ミスドで期間限定のカルピスコラボ商品「カルピスドーナツ」と「カルピ

十三カレー計画で牛すじカレーネギのせを食す!(大阪・十三)

「iPhoneアプリ開発キャンプ@大阪」のランチで、十三カレー計画

大阪・難波の加寿屋 法善寺でかすうどんを食す。ランチタイムはおにぎり2個まで無料!

大阪・難波の加寿屋 法善寺 (かすうどん KASUYA)で、かす

ライブドアブログで運営していた「あきお商店」を「卵は世界である」に改名しました

少し前からライブドアブログで「あきお商店」というブログをやって

→もっと見る

PAGE TOP ↑