TimeSpan时间计算,分钟 - 如何将时间跨度转换为int

时间:2013-05-21 16:55:06

标签: c#

我有以下代码,

现在的问题是,预测这种情况的最佳方式是什么:

另请注意“minAdd”可以通过60,意味着90分钟加(一小时半等)

感谢,

        int minAdd = Convert.ToInt16(txtMinAdd.text);
        DateTime now = DateTime.Now;
        DateTime nextEvent = DateTime.Now.AddMinutes(minAdd);
        TimeSpan diff = now - nextEvent;
        if (diff > minAdd) -------------- PROBLEM HERE
        {
            //act here
        }

2 个答案:

答案 0 :(得分:4)

编辑:正如里德所指出的那样,你所展示的代码毫无意义。我假设你真的想从其他地方获得nextEvent

我怀疑你只是想要:

if (diff.TotalMinutes > minAdd)
{
}

或者您可以使用:

TimeSpan minTimeSpan = TimeSpan.FromMinutes(Convert.ToInt16(txtMinAdd.text));
...
if (diff > minTimeSpan)
{
}

答案 1 :(得分:1)

由于diff基于完全基于nextEvent的{​​{1}},因此没有理由进行此项检查 - 它永远不会成立。

此外,在您的代码中,如果minAdd为正数,diff将始终为负数,因为您从minAdd中减去未来事件(nextEvent

如果您尝试安排在某个时间点发生事件,您可能需要考虑使用DateTime.Now,并根据事件时间安排计时器在某个时间点发生: / p>

Timer