我正在尝试23.40
使用以下方法转换以双精度表示的时间,例如表示 23 小时 40 分钟:
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
,整整一分钟都被系统偷走了!我的分钟在哪里?
注意:我知道TimeSpan.FromHours
,这对我没有帮助,因为这种方法将分钟视为百分比,因此23.40
23 小时和一小时的 40%,即23:24:00
.