.NET Standard 2.1/.NET Core 2.0以降のTimeSpanでは、TimeSpanに対してdouble
の値との乗除算を行うことが出来るようになっています。 Multiplyメソッドで乗算、Divideメソッドで除算が行えます。 C#・VB.NETなどオーバーロードされた演算子を使用できる言語では、これらのメソッドを使う代わりに乗算演算子・除算演算子を使うことも出来ます。
乗算/除算演算子・Multiply/DivideメソッドでTimeSpanに対して乗除算を行う .NET Standard 2.1/.NET Core 2.0
using System;
class Sample {
static void Main()
{
var ts = TimeSpan.FromSeconds(1);
Console.WriteLine(ts.Multiply(2.0)); // Multiplyメソッドを使って乗算を行う(2を掛ける)
Console.WriteLine(ts * 2.0); // 乗算演算子を用いることも可能
Console.WriteLine(ts.Divide(2.0)); // Divideメソッドを使って除算を行う(2で割る)
Console.WriteLine(ts / 2.0); // 除算演算子を用いることも可能
}
}
実行結果
00:00:02 00:00:02 00:00:00.5000000 00:00:00.5000000
これらのメソッドが使えない環境では、TimeSpan.TotalSecondsなどのプロパティで一旦数値に変換してから乗除算を行い、その後TimeSpan.FromSecondsなどのメソッドで再びTimeSpanに戻す、といった手順をとることにより乗除算を行うことができます。