作为标题的问题,这是行不通的,不明白为什么:
// Get total steps, current step and duration in milliseconds
int current = stats[0]; int total = stats[1]; int duration = stats[2];
// Calculate the time span (of remaining time)
var remaining = TimeSpan.FromMilliseconds((total - current) * duration);
// Update the label
label.Text = string.Format("Tempo rimanente: {0}",
(new DateTime(remaining.Ticks)).ToString("hh:mm:ss"));
答案 0 :(得分:1)
您为什么要尝试将TimeSpan
转换为DateTime
? “剩余时间”是一个非常适合TimeSpan
而不是DateTime
的概念。您可能希望将其转换为 为DateTime
的“估计完成时间”,否则只需使用TimeSpan
。
请注意,在.NET 4中,TimeSpan
获得了custom format abilities,如果你真的需要它们 - 但我怀疑默认格式可能对你没用,至少从开始。
答案 1 :(得分:1)
尝试更改
(new DateTime(remaining.Ticks)).ToString("hh:mm:ss"));
要
remaining.Hours + ":" + remaining.Minutes + ":" + remaining.Seconds);
或者甚至:
// Update the label
label.Text = string.Format("Tempo rimanente: {0:00}:{1:00}:{2:00}",
remaining.Hours, remaining.Minutes, remaining.Seconds)