#author("2019-11-24T15:51:19+09:00","","") #navi(../) * 時間(日数+時間)を格納することができるTimeSpan構造体 [#m09b3f78] Dateの変数に対して、指定した日数+時間を加算したり、減算したりしたい場合は、~ TimeSpan構造体が便利です。~ #contents * 参考サイト [#i1fc6bd5] -[[[Microsoft|.NET TimeSpan 構造体>https://docs.microsoft.com/ja-jp/dotnet/api/system.timespan?view=netframework-4.8]] #htmlinsert(windev-top.html) * TimeSpan構造体を使ったサンプルコード [#ma85d8da] 以下に''TimeSpan''構造体を使った、C#、Visual Basic(VB)のサンプルコードを記します。~ コンソールアプリケーションとして作成し、動作確認をしました。~ 動作内容は以下の通りです。 -DateTimeオブジェクトに対し、''TimeSpan''に設定した(日+時間)を引き算し結果を表示します。 -DateTimeオブジェクト同士で引き算をし、差分(日)を''TimeSpan''に格納し結果を表示します。 ** C# サンプルコード [#ic367098] C#でTimeSpanを利用したサンプルコードになります。 #ref(Program.cs) using System; namespace TimeSpanCS { class Program { static void Main(string[] args) { // 指定した日付から指定した日+時間を減算する DateTime dt = new DateTime(2019, 12, 1, 0, 0, 0); // 2019/12/01 00:00:00 TimeSpan ts1 = new TimeSpan(25, 1, 2); // 25時間2分3秒 Console.WriteLine(dt.ToString() + " - " + ts1.ToString() + " = " + (dt-ts1)); // TimeSpanに経過日数を格納する DateTime sdt = new DateTime(2019, 12, 1); // 2019/12/01 DateTime edt = new DateTime(2019, 11, 10); // 2019/11/10 TimeSpan ts2 = sdt - edt; Console.WriteLine(edt.ToString() + " - " + sdt.ToString() + " = " + ts2.Days); } } } ** Visual Basic サンプルコード [#h809b8f4] Visual Basic(VB)でTimeSpanを利用したサンプルコードになります。 #ref(Program.vb) Imports System Module Program Sub Main(args As String()) '指定した日付から指定した日+時間を減算する Dim dt As DateTime = New DateTime(2019, 12, 1, 0, 0, 0) '2019/12/01 00: 00:00 Dim ts1 As TimeSpan = New TimeSpan(25, 1, 2) '25時間2分3秒 Console.WriteLine(dt.ToString() & " - " & ts1.ToString() & " = " & (dt - ts1)) 'TimeSpanに経過日数を格納する Dim sdt As DateTime = New DateTime(2019, 12, 1) '2019/12/01 Dim edt As DateTime = New DateTime(2019, 11, 10) '2019/11/10 Dim ts2 As TimeSpan = sdt - edt Console.WriteLine(edt.ToString() & " - " & sdt.ToString() & " = " & ts2.Days) End Sub End Module ** 動作結果 [#ve724027] 上記のC#, VBのサンプルコードの実行結果になります。 2019/12/01 0:00:00 - 1.01:01:02 = 2019/11/29 22:58:58 2019/11/10 0:00:00 - 2019/12/01 0:00:00 = 21 #ref(01.png) 以上、C#, Visual Basic(VB)でTimeSpan構造体を使ったサンプルコードの紹介でした。 #htmlinsert(windev-btm.html)