時間(日数+時間)を格納することができるTimeSpan構造体 †Dateの変数に対して、指定した日数+時間を加算したり、減算したりしたい場合は、 参考サイト †TimeSpan構造体を使ったサンプルコード †以下にTimeSpan構造体を使った、C#、Visual Basic(VB)のサンプルコードを記します。
C# サンプルコード †C#でTimeSpanを利用したサンプルコードになります。 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 サンプルコード †Visual Basic(VB)でTimeSpanを利用したサンプルコードになります。 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 動作結果 †上記の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 以上、C#, Visual Basic(VB)でTimeSpan構造体を使ったサンプルコードの紹介でした。 |