![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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ランキング
-
Perlでsprintf("%02d",$month)...
-
T-SQL(SQL Server2000) 月数の...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
ACCESS テキストボックスを隙...
-
formで特定のinputを送信しない...
-
16進の10進変換について
-
<SELECT>タグの折り返し
-
FindFirst を複数条件で検索
-
VBAでPDFのコピーとリネームを...
-
「*:*」って何を意味するのでし...
-
VBA他のブックから値のみ貼付す...
-
テーブル内でドロップダウンメ...
-
数値かどうかの判定方法
-
Fire fox の 文字化けを解消...
-
メモリをアドレスを直接指定し...
-
UWSCのSELECT文の記述方法
-
プロトタイプ宣言のワーニング...
-
$(ドル)の記号を表示したいの...
-
複数列を持ったリストボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
先月(YYYYMM)の生成方法
-
日齢計算プログラム
-
大至急お願いします。出力で悩み。
-
2つの日付・時間の差分を求め...
-
サマータイムの判定について
-
CSV読み込み時に条件に合う行(...
-
1桁の日付に0を付ける
-
Perlの日付の比較に関して
-
当日の日付をプルダウンメニュ...
-
ソースの詳細を教えてください。
-
日付の差分の求め方(日、分)
-
前日の日付取得するには?
-
体重が3kg増える/減る の英語...
-
日付範囲をの連番と月末を取得
-
PICで世界時計を作りたいのですが
-
PerlからMysqlに接続してデータ...
-
Schemeのプログラミング うる...
-
perlでcheckboxがうまく整理で...
-
時間の計算について
-
年令の計算方法
おすすめ情報