我想写一下:如果2个DateTimes的差异结果超过3个小时,那么if语句中的东西就会发生。但我只需要几秒或几分钟的属性,我可以从DateTime对象中提取它吗?
if(diffResult > DateTime.Hour(3))
{
}
我还想知道是否可以按期间划分DateTime。假设我想将我的diffResult(这是2个DateTimes之间的差异)分成3个句点,或者可能每3秒将我的计数器添加到其中。
答案 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
}
对于第二个,本文应该是有用的:
答案 3 :(得分:-1)
您询问返回整数结果的方法。你究竟是什么问题? DateTime.Hour(3)
甚至不会编译。
我认为您正在寻找 DateTime.Now.AddHours(3.0)
我应该清楚,这个答案是稀疏的唯一原因,是因为作者的问题中的代码无效。因为我并不试图猜测人们真正想要什么,而是由作者决定,以澄清他想要的东西。
他所要做的就是减去两个DateTime
值并将其与TimeSpan