如何隔离DateTime的属性?

时间:2012-03-27 18:15:54

标签: c# datetime properties methods hour

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

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

我还想知道是否可以按期间划分DateTime。假设我想将我的diffResult(这是2个DateTimes之间的差异)分成3个句点,或者可能每3秒将我的计数器添加到其中。

4 个答案:

答案 0 :(得分:7)

第一部分: 您可以减去两个DateTime以获得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 */ }

答案 1 :(得分: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

答案 2 :(得分:0)

你可以这样做:

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

if (date1.Subtract(date2) > time)

{
//YourCode
}

对于第二个,本文应该是有用的:

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

答案 3 :(得分:-1)

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

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

我应该清楚,这个答案是稀疏的唯一原因,是因为作者的问题中的代码无效。因为我并不试图猜测人们真正想要什么,而是由作者决定,以澄清他想要的东西。

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

进行比较