PERLにて、以下のようなことがしたいと考えています。
$date1="12:00"
$date2="12:45"
$date2 - $date1 = 45(分)
上記の感じで2つの時刻の差分時間を計算したいと考えているのでが、何か良い方法はないでしょうか?
最初は時刻を「(時間×60)+○○分」に変換して引き算すれば良いかと考えていましたが、その場合だと、日をまたぐ(23:00から2:00)みたいな計算が出来るのかな?と思いました。
何か良い方法があればご教授頂ければ幸いです。
それでは、どうぞよろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No.2で貼り付けに失敗して2行切れましたが、定義したtimeDiff()は、こんな感じで使います。
----
printf "$a to $b is %d[min]\n", timeDiff($a,$b);
printf "$c to $d is %d[min]\n", timeDiff($c,$d);
----
出力は、こうなります。
----
12:00 to 12:45 is 45[min]
23:00 to 02:00 is 180[min]
----
No.2
- 回答日時:
こんなんでどうでしょう?
sub toLinear {
my ($timeStr) = @_;
my ($hh,$mm) = split(/:/,$timeStr);
return ($hh * 60 + $mm);
}
sub timeDiff {
my ($from,$to) = @_;
my $MinDays = 24 * 60;
return ((toLinear($to) - toLinear($from) + $MinDays) % $MinDays);
}
$a = "12:00";
$b = "12:45";
$c = "23:00";
$d = "02:00";
No.1
- 回答日時:
sub timeDiffByM($$){
# timeformat "hh:mm"
# timeDiffByM(from, to)
my ($from, $to) = @_;
my ($f_h, $f_m) = split(/:/, $from);
my ($t_h, $t_m) = split(/:/, $to);
my $f = $f_h * 60 + $f_m;
my $t = $t_h * 60 + $t_m;
my $d = $t - $f;
if($d<0){
$d += 24*60;
}
return $d;
}
print timeDiffByM("12:00", "12:45") . "(分)\n";
print timeDiffByM("23:00", "02:00") . "(分)\n";
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- 労働相談 有給休暇使用時の賃金の計算方法について 5 2022/04/04 00:02
- 工学 以前、線形代数からフーリエ級数展開を導く上で 式v=(v, e1)e1+(v, e2)e2+…+(v 6 2022/06/29 17:24
- 電気工事士 平均照度の計算あっているか教えてください。忙しいと思いますがよろしくお願いします。 現地測定し数値を 1 2022/09/29 07:37
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
- その他(Microsoft Office) 勤務表のエクセル作成で数式を教えてください。 1 2023/01/17 03:27
- Excel(エクセル) エクセルの早退時間を計算したいです。計算はうまくいっているようですが… 1 2022/12/26 16:22
- その他(ビジネス・キャリア) 日報の実務労働時間の集計について困っています。 2 2023/06/09 19:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
12月から1月へのリンク
-
日付の差分の求め方(日、分)
-
C言語のプログラミングについて...
-
体重が3kg増える/減る の英語...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
文字の横にプルダウンを表示さ...
-
実行時エラー 3020の対策
-
<SELECT>タグの折り返し
-
セレクトメニューで2つの項目...
-
テーブル内でドロップダウンメ...
-
FindFirst を複数条件で検索
-
同じものを繰り返し表示させる
-
VBAでPDFのコピーとリネームを...
-
セレクトボックスの内容を中央寄せ
-
malformed header from script....
-
formで特定のinputを送信しない...
-
print <<"_HTML_"の中でサブル...
-
<python>シンタックスエラーが...
-
複数列を持ったリストボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付の差分の求め方(日、分)
-
1桁の日付に0を付ける
-
Perlでsprintf("%02d",$month)...
-
2つの日付・時間の差分を求め...
-
日齢計算プログラム
-
a shower.
-
Perlの日付の比較に関して
-
前日の日付取得するには?
-
サマータイムの判定について
-
pythonのプログラミングについ...
-
時間の計算について
-
VBAでオーバーフローが出て困っ...
-
当日の日付をプルダウンメニュ...
-
「型が一致しません」のエラー...
-
perlでcheckboxがうまく整理で...
-
Schemeのプログラミング うる...
-
perl ハノイの塔の解に順番付け...
-
Perlでテキストファイルの読み込み
-
このソースがコンパイルエラー...
-
PerlからMysqlに接続してデータ...
おすすめ情報