所以我正在尝试记录我的设备上剩余电池生命周期的时间跨度
我的方法是:
PowerStatus powerStatus = SystemInformation.PowerStatus;
if (powerStatus.BatteryLifeRemaining > -1)
{
Console.WriteLine(String.Format("Battery Life Remaining {0}",new TimeSpan(0, 0, powerStatus.BatteryLifeRemaining)).ToString());
}
但我时不时会收到奇怪的值,例如 7.01:44:22
这个例子表明:
TimeSpan( 1000, 2000, 3000 ) = 43.02:10:00
TimeSpan( 1000, -2000, -3000 ) = 40.05:50:00
TimeSpan( 999999, 999999, 999999 ) = 42372.15:25:39
但是这些值意味着什么以及我如何避免获得它们,因为它们在现实世界中没有多大意义
最佳答案
MSDN documentation解释得很好。小数点前面的数字是天,小数点后面的数字是小时。
43.02:10:00
翻译为:
43 days
02 hours
10 minutes
00 seconds
您可以使用代码验证这一点:
var ts = new TimeSpan(1000, 2000, 3000);
Console.WriteLine(ts.TotalDays); // Output: 43.0902777777778
Console.WriteLine(ts.Days); // Output: 43
Console.WriteLine(ts.TotalHours); // Output: 1034.16666666667
Console.WriteLine(ts.Hours); // Output: 2
关于c# - 当您在小时中得到小数时,时间跨度意味着什么。例如43.02 :10:00 and how do I avoid it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26125145/