.NETでは、日時を表すDateTime・DateTimeOffsetと合わせて、時間間隔を表すTimeSpan構造体が用意されています。 TimeSpanは、例えば「36時間」や「50ミリ秒」といった時間の長さを一つの型で表すために使います。

時間の長さをintdoubleなどの数値型で表そうとした場合、それが秒を表すのか、分を表すのか、といった単位の扱いや変換が煩雑になりがちですが、TimeSpanを使えばそういった煩雑さは解消されます。 TimeSpanでは加減算もサポートされているので、互いに単位の異なる時間間隔の加減算も容易に行うことができます。

TimeSpan構造体
using System;

class Sample {
  static void Main()
  {
    // 3日と1時間30分0秒
    var a = new TimeSpan(3, 1, 30, 00);

    // aを分単位で表すと何分になるか
    Console.WriteLine("{0} = {1}分", a, a.TotalMinutes);

    // 210分
    var b = TimeSpan.FromMinutes(210.0);

    // bは何時間何分か
    Console.WriteLine("{0} = {1}時間{2}分", b, b.Hours, b.Minutes);

    // -1500ミリ秒
    var c = TimeSpan.FromMilliseconds(-1500);

    // cを時間単位で表すと何時間になるか
    Console.WriteLine("{0} = {1}時間", c, c.TotalHours);

    // bとcの合計時間
    var d = b + c;

    Console.WriteLine(d);
  }
}
実行結果
3.01:30:00 = 4410分
03:30:00 = 3時間30分
-00:00:01.5000000 = -0.000416666666666667時間
03:29:58.5000000

DateTime・DateTimeOffsetがある特定の時点を表すものであるのに対して、TimeSpanは二つの時刻間の差を表すものとも言えます。 実際、DateTime・DateTimeOffsetで日時の加減算を行う場合、TimeSpanを使うことが出来るようになっています。