TimeSpanのコンストラクタでは、時分秒に負の値を指定したり、36時間90分といった値を指定することができます。 負数や大きな値を指定した場合でも、TimeSpanの最大・最小値を越えない限り例外はスローされません。 時間に負の値・分に正の値といった指定もすることが出来ます。 時分秒単位以外にも、DateTime・DateTimeOffsetの精度と同じ単位であるタイマ刻み数(=100ナノ秒)単位の値を指定することも出来ます。
コンストラクタを使ってTimeSpanインスタンスを作成する
using System;
class Sample {
static void Main()
{
// 3日と1時間30分
var a = new TimeSpan(3, 1, 30, 00);
// -3時間+90分 (-1時間30分)
var b = new TimeSpan(-3, 90, 0);
// 1500ミリ秒
var c = new TimeSpan(0, 0, 0, 0, 1500);
// 30,000,000 × 100ナノ秒 = 3秒
var d = new TimeSpan(30000000);
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);
}
}
実行結果
3.01:30:00 -01:30:00 00:00:01.5000000 00:00:03