如何从c#中的循环时间和数量计算所需时间

时间:2017-10-25 06:52:39

标签: c# timespan

我想计算生产一批零件所需的时间 其中我有周期时间和零件数量

cycleTime =以秒为单位生成零件的时间。

所以它是正确的

        decimal rqtime = (CycleTime * oprQty)/3600;
        TimeSpan rts = TimeSpan.FromHours(Convert.ToDouble(rqtime));
        label8.Text = rts.ToString();

如果没有,请给我一些解决方案

我还想在完成所需时间后通知用户 那么如何在c#

中做到这一点

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你可以这样试试:

var CycleTime = 30; //seconds
var oprQty = 100; //number of parts
decimal rqtime = (CycleTime * oprQty);
TimeSpan rts = TimeSpan.FromSeconds(Convert.ToDouble(rqtime));
label8.Text = string.Format("Time to complete {0}", rts);
//the label will show: Time to complete 00:50:00

请注意,考虑到你有几秒钟的周期,不需要将其除以3600,你可以使用TimeSpan.FromSeconds方法将这些秒正确转换为持续时间。

<强>更新

要通知用户,您可以使用Timer执行此操作:

var aTimer = new System.Timers.Timer(rts.TotalMilliseconds); 
 //here you can use the same time span above.
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Enabled = true; 

private void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
{
    MessageBox.Show("The batch is completed!");
}

答案 1 :(得分:2)

我没有足够的声誉发表评论,所以这是一个答案:

您将使用您的代码获得正确的结果,但是:

  1. 有十进制类型的用法(如果你需要精度),但是如果你只是用它来提供TimeSpan.FromHours方法并将其直接转换为double,为什么不首先使用double ? 更新:这样一来,你也失去了Mong Zhu在评论中正确指出的整数除法
  2. 如果可以使用TimeSpan.FromSeconds,为什么要使用3600并使用TimeSpan.FromHours?
  3. 所以我会这样做:

      <!--Hack to fix library not defined (pt. 1)-->
      <script>
        if (typeof module === 'object') {
          window.module = module;
          module = undefined;
        }
      </script>
    
      <!--Library-->
      <script src="./node_modules/jquery/dist/jquery.js"></script>
    
      <!--Hack to fix library not defined (pt. 2)-->
      <script>
        if (window.module) module = window.module;
      </script>