#author("2019-11-24T15:51:19+09:00","","")
#navi(../)
* 時間(日数+時間)を格納することができるTimeSpan構造体 [#m09b3f78]
Dateの変数に対して、指定した日数+時間を加算したり、減算したりしたい場合は、~
TimeSpan構造体が便利です。~
#contents
#htmlinsert(windev_ads_top.html)
* 参考サイト [#i1fc6bd5]
-[[[Microsoft|.NET TimeSpan 構造体>https://docs.microsoft.com/ja-jp/dotnet/api/system.timespan?view=netframework-4.8]]
* 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_ads_btm.html)