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