
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ランキング
-
PHPのstrtotimeのようなものあ...
-
ファイルデータの入れ替えにつ...
-
サマータイムの判定について
-
timeの変更
-
日付範囲をの連番と月末を取得
-
PerlからMysqlに接続してデータ...
-
Perlでテキストファイルの読み込み
-
Date::Calcの計算ミス?
-
Perlでsprintf("%02d",$month)...
-
カレンダー作成
-
日付の差分の求め方(日、分)
-
年・月・日の3つのselectメニュ...
-
更新記録CGIで「前へ」「次へ」...
-
漢民族のヒステリーと半島人の...
-
先月(YYYYMM)の生成方法
-
うるう年の出し方で
-
日記の指定日のみ表示
-
うるう年の出し方
-
perl 曜日を入れる
-
プログラムの内容
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
年月日の数値化?
-
日付の差分の求め方(日、分)
-
日齢計算プログラム
-
Perlの日付取得で月の表示がお...
-
perlでcheckboxがうまく整理で...
-
パールスクリプトのif else文に...
-
perl セレクトメニューを ↓の...
-
perl Windows 7でファイルの衝...
-
ローカルだと改行されるのに、...
-
サマータイムの判定について
-
Perlの乱数について
-
T-SQL(SQL Server2000) 月数の...
-
C言語のプログラミングについて...
-
ソースの詳細を教えてください。
-
前日の日付取得するには?
-
月見る月はこの月の月
-
Perl スクレイピング処理につ...
-
Schemeのプログラミング うる...
-
CSV読み込み時に条件に合う行(...
-
if文データの別ファイル化について
おすすめ情報