.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
Imports System
Class Sample
Shared Sub Main()
Dim 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) ' 除算演算子を用いることも可能
End Sub
End Class
実行結果
00:00:02 00:00:02 00:00:00.5000000 00:00:00.5000000
これらのメソッドが使えない環境では、TimeSpan.TotalSecondsなどのプロパティで一旦数値に変換してから乗除算を行い、その後TimeSpan.FromSecondsなどのメソッドで再びTimeSpanに戻す、といった手順をとることにより乗除算を行うことができます。