0

我想写:如果 2 DateTimes 差异的结果超过 3 小时,那么.... if 语句中的内容发生了。但是我只需要几秒钟或几分钟内的属性,我可以从 DateTime 对象中提取它吗?

  if(diffResult > DateTime.Hour(3))
   {
   }

我还想知道是否可以将 DateTime 划分为句点。假设我想将我的 diffResult(这是 2 个 DateTimes 之间的差异)拆分为 3 个周期,或者可能每 3 秒我的计数器就会添加一个。

4

4 回答 4

7

对于第一部分:您可以减去两个DateTimes 来获得 a TimeSpan,您可以获得各种单位的总和 - 例如:

if ( (secondTime - firstTime).TotalMinutes > 180.0) ...

或者你可以TimeSpan直接使用:

if (secondTime - firstTime > TimeSpan.FromHours(3)) ...

对于第二部分,您必须自己进行一些计算:

var diff = secondTime - firstTime;
var period = TimeSpan.FromSeconds(diff.TotalSeconds / 3.0);
for (var time = firstTime; time < secondTime; time += period)
{ /* do your stuff */ }
于 2012-03-27T18:20:08.383 回答
1

您可以使用以下代码进行比较:

  DateTime dt = new DateTime();
                dt = DateTime.Now;
                dt.AddHours(3);
                int h = (int)DateTime.Now.Hour;
                if (dt.Hour == h )
                   //Do something
                else
                   //do otherthing
于 2012-03-27T18:33:25.650 回答
0

你可以这样做:

TimeSpan time = new TimeSpan(3, 0, 0);

if (date1.Subtract(date2) > time)

{
//YourCode
}

对于第二个,这篇文章应该是有用的:

http://www.blackwasp.co.uk/TimespanMultiplication.aspx

于 2012-03-27T18:27:24.427 回答
-1

您询问的方法返回整数结果。你的问题到底是什么?DateTime.Hour(3)甚至不会编译。

我认为您正在寻找DateTime.Now.AddHours(3.0)

我应该清楚,这个答案的唯一原因是这个稀疏,是因为作者的问题中的无效代码。由于我不会试图猜测人们真正想要什么,所以由作者来澄清他到底想要什么。

他所要做的就是减去两个DateTime值并将其与TimeSpan

于 2012-03-27T18:23:45.687 回答