c# - 当您在小时中得到小数时,时间跨度意味着什么。例如43.02 :10:00 and how do I avoid it

标签 c# timespan battery

所以我正在尝试记录我的设备上剩余电池生命周期的时间跨度

我的方法是:

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 Constructor

这个例子表明:

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/

相关文章:

android - REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 触发但无提示

c# - 优化 C# 代码片段、ObservableCollection 和 AddRange

c# - 即使用户更改手机时钟,也可以准确计算 Windows Phone 7 上两个 DateTimes 的差异吗?

c# - 使用 C# 从时间跨度中删除秒数

c# - 如何转换字符串 "07:35"(HH :MM) to TimeSpan

java - 在 Android 中获取电池电量和状态

c# - 如何使用 C#.NET HashTable 实现所需的 JSON 格式

c# - 带有数据绑定(bind)的 DataGridView - 新行未显示

c# - 将参数作为对象传递[]

macos - 有没有办法在 OSX 中以编程方式关闭电池充电?