c# - 如何计算两个日期时间之间的百分比

标签 c# datetime

我想知道如何计算两个 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/

相关文章:

c# - 嵌套 XML 形式的数据集

c# - 在 F# 中使用绑定(bind)接口(interface)

java LocalDateTime 来自字符串解析错误

c# - 带有参数列表的 Dapper 查询

c# - 针对 Oracle、Sql Server 和 Mongodb 构建聚合/汇总报告数据库

PHP DateTime::createFromFormat 行为

datetime - 如何在 Google Data Studio 中执行 "Today Minus Date Field"?

python - 如何将小时添加到 Pandas 数据框列

PHP:数组中的 DATETIME 作为对象。如何回应

c# - 异步 Json.net 反序列化