几天的 C# 计时器
C# Timer for days
我在我的项目中使用了 System.Threading.Timer,如下面的代码:
async Task Timer()
{
timer = new System.Threading.Timer((_) =>
{
TimeSpan span = DateTime.Now.Subtract(ed);
Time = (TimeSpan.FromTicks(span.Ticks).ToString()).Substring(0, 8);
InvokeAsync(() =>
{
StateHasChanged();
});
}, null, 0, 1000);
}
它减去两个不同的时间并显示计时器。一切正常,直到它还不是 24 小时。
这是我的问题。我应该如何更改我的代码以在 24 小时后显示计时器?
提前致谢
时间跨度累计到天级别,它们不会停止计算小时数。如果你有一个代表 23:59:59 的时间跨度并且你在其中添加一秒,你就不会得到 24:00:00获得 1 天 00:00:00
如果你想让它永远以小时计算,你必须自己将天数乘以小时数
$"{t.Days*24+t.Hours}:{t.Minutes}:{t.Seconds}"
您也可以去掉总小时数的小数部分
$"{(int)t.TotalHours}:{t.Minutes}:{t.Seconds}"
$"{t.TotalHours:F0}:{t.Minutes}:{t.Seconds}"
我在我的项目中使用了 System.Threading.Timer,如下面的代码:
async Task Timer()
{
timer = new System.Threading.Timer((_) =>
{
TimeSpan span = DateTime.Now.Subtract(ed);
Time = (TimeSpan.FromTicks(span.Ticks).ToString()).Substring(0, 8);
InvokeAsync(() =>
{
StateHasChanged();
});
}, null, 0, 1000);
}
它减去两个不同的时间并显示计时器。一切正常,直到它还不是 24 小时。 这是我的问题。我应该如何更改我的代码以在 24 小时后显示计时器? 提前致谢
时间跨度累计到天级别,它们不会停止计算小时数。如果你有一个代表 23:59:59 的时间跨度并且你在其中添加一秒,你就不会得到 24:00:00获得 1 天 00:00:00
如果你想让它永远以小时计算,你必须自己将天数乘以小时数
$"{t.Days*24+t.Hours}:{t.Minutes}:{t.Seconds}"
您也可以去掉总小时数的小数部分
$"{(int)t.TotalHours}:{t.Minutes}:{t.Seconds}"
$"{t.TotalHours:F0}:{t.Minutes}:{t.Seconds}"