【问题标题】:How to get the percentage of time in hours...?如何获得以小时为单位的时间百分比......?
【发布时间】:2015-09-22 00:49:05
【问题描述】:

我正在使用 asp.net c# 开发一个 Web 应用程序。 在那我需要得到时间的百分比。 我没有得到正确的方法来实现这一点。我有来自 db 的 TotalHours。我需要计算 TotalHours 的 80%。

我们将不胜感激。 谢谢...

//This is how I am getting the TotalTime
TimeSpan TotalTime = TimeSpan.Parse(totalhours);

if(TotalTime != null)
{

TimeSpan Percentage= ( TotalTime* 80 ) / 100;
// here I need to get correct percentage in hrs
// If TotalTime is 10 hrs then Percentage should be 8 hrs 

}

【问题讨论】:

  • Multiply TimeSpan in .NET的可能重复
  • 如果它来自数据库,则不应调用TimeSpan.Parse,因为您不应将时间作为字符串存储在数据库中。相反,确定您关心的精度(例如,分钟)并存储该精度的整数。然后使用TimeSpan.FromMinutesTimeSpan.TotalMinutes 或类似方法获得其他精度。

标签: c# asp.net timespan


【解决方案1】:
TimeSpan TotalTime = TimeSpan.Parse("10:00:00");

if (TotalTime != null)
{
    var ticks = ((TotalTime.Ticks * 80) / 100);
    TimeSpan Percentage = new TimeSpan(ticks);
    Console.WriteLine(Percentage);  // 8 hours
}

【讨论】:

  • Plus 1。我喜欢这个,因为它需要总时间,即滴答声,而不仅仅是几个小时。
  • @NikhilAgrawal 是的,我在 7 分钟前写了同样的东西,但无论如何 :)
  • 给你加 1 @msmolcic。
【解决方案2】:
TimeSpan totalTime = new TimeSpan(10, 0, 0);
TimeSpan percentage = TimeSpan.FromMilliseconds((totalTime.TotalMilliseconds * 80) / 100);

从您的总时间中获取总毫秒数,进行数学运算并将其从毫秒转换回TimeSpan

如果您对小时数感到满意,只需更改:

TimeSpan percentage = TimeSpan.FromHours((totalTime.TotalHours * 80) / 100);

【讨论】:

    【解决方案3】:

    TotalHours property of TimeSpandouble 形式返回总小时数。这就是为什么你可以计算 %80 的 TimeSpan 喜欢;

    double Percentage = (TotalTime.TotalHours * 4) / 5;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多