23.40
次の方法を使用して、23 時間 40 分を意味するdouble で表される時間を変換しようとしています。
private TimeSpan DoubleToTimeSpan(double time)
{
double hour = Math.Floor(time);
double minute = (time - hour) * 100d;
TimeSpan ts = new TimeSpan((int)hour, (int)minute, 0);
return ts;
}
23.40
たとえば、次のように、何度かテストする場合:
Console.WriteLine(DoubleToTimeSpan(23.40));
システムによって23:39:00
1 分が盗まれました。私の分はどこですか?
注: については知ってTimeSpan.FromHours
いますが、このメソッドは分をパーセンテージと見なすため、23.40
23 時間と 1 時間の 40%、つまり23:24:00
.