我想知道如何计算两个 DateTime 之间的百分比,我有一个 BackgroundWorker 执行直到达到提供的 DateTime,该部分工作正常,我只想在 UI 中显示 worker 完成的百分比是多少.
我尝试使用以下方法:
var now = DateTime.Now;
var executeUntil = DateTime.Now..AddHours(4).AddMinutes(10);
var percentage = (int)(( executeUntil.Ticks * 100 ) / now.Ticks );
但总是返回 1,我猜这是因为 Ticks 是一个很长的数字并且以某种方式截断了除法。
有什么建议吗?
最佳答案
试试这个:
var start = DateTime.Now;
var end = DateTime.Now.AddMinutes(1);
var total = (end - start).TotalSeconds;
for( int i = 0; i < 10; i++)
{
Thread.Sleep(6000);
var percentage = (DateTime.Now - start).TotalSeconds*100/total;
Console.WriteLine(percentage);
}
关于c# - 如何计算两个日期时间之间的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13115555/