我有以下代码:
private void button1_Click(object sender, EventArgs e)
{
DateTime dtime = DateTime.MinValue.Add(UpTime);
string result = dtime.ToString(@"dd:hh\:mm\:ss");
textBox1.Text = Convert.ToString(result);
}
public TimeSpan UpTime
{
get
{
using (var uptime = new PerformanceCounter("System", "System Up Time"))
{
uptime.NextValue(); //Call this an extra time before reading its value
return TimeSpan.FromSeconds(uptime.NextValue());
}
}
}
}
}
我的问题是我的系统启动时间是4天3小时22分钟。
但应用程序显示更多1天。即5天......
我怎样才能使它正确?
答案 0 :(得分:4)
DateTime.MinValue
值为01/01/0001 00:00:00
。因此,将此值添加4天3小时22分钟,结果将为05/01/0001 03:22:00
。
由于您将 值格式化,因此太正常而无法将05
作为日期部分。
您可以直接将UpTime
属性格式化为TimeSpan
,而不是那样。
var f = new Form1();
textBox1.Text = f.UpTime.ToString(@"dd\.hh\:mm\:ss", CultureInfo.InvariantCulture);