時間の計算について

タグの編集
投稿者 はるお  (社会人) 投稿日時 2020/3/19 00:38:30
夜分遅くに失礼いたします。

日付の差を時間として求める際にTimeSpanを活用すると思いますが、取得した時間を秒に変換する良い方法はないでしょうか?

Dim dt1 As New Date(2008, 2, 17, 18, 0, 0)
Dim dt2 As New Date(2008, 2, 17, 19, 30, 0)

この2つの日にちを比較した場合、得られる差は
01:30:00だと思いますが、この値を秒に変換する手段として

時間部分の数値×3600
分部分の数値×60
秒部分の数値

上記3つの値を合算して秒に換算する、位しか思い付きませんがもう少しスマートな方法はないでしょうか?

よろしくお願いします
投稿者 るきお  (社会人) 投稿日時 2020/3/19 07:41:02
TimeSpanのTotalXXXXプロパティを使うと、経過時間を日・時間・分・秒などの単位で取得することができます。これを使って経過秒を取得するのが簡単です。

秒単位で取得したい場合は、たとえば、下記のようにします。
Dim dt1 As New Date(2008, 2, 17, 18, 0, 0)
Dim dt2 As New Date(2008, 2, 17, 19, 30, 0)

Dim span As TimeSpan = dt2 - dt1
Dim seconds As Double = span.TotalSeconds

MsgBox($"経過時間は {seconds} 秒です。")


>夜分遅くに失礼いたします。
裏に人間が待機しているわけでもありませんので、いつでもお気軽に書き込んでください。
投稿者 はるお  (社会人) 投稿日時 2020/3/22 19:34:18
るきお様

温かいお言葉をありがとうございます。
当初私が提示した方法より幾分もるきお様がお教えくださったTimeSpanを扱った方式の方が
コードも綺麗に書け、動作の確認も行うことが出来ました。
次回もこのような事が必要な際は活用させていただきます。

有難うございました。