C# 检测日期何时更改

  • 本文关键字:何时更 日期 c# wpf
  • 更新时间 :
  • 英文 :


在我的应用程序中,我有一个每 5 秒运行一次的自动收报机。我还有一个内部时钟,我想检测一天的时间。为了测试,我尝试了以下代码但没有成功:

DateTime A = new DateTime(2019, 6, 20, 23, 58, 29);       
DateTime B = new DateTime(2019, 6, 21, 00, 01, 12);
Int32 dd = (B-A).Days;          // it returns 0
double dd = (B-A).TotalDays;    // it return 0.00002136213 

如果我检查总天数是否> 0,我会成功检测到日期变化,但在以下情况下(相差一分钟(

DateTime C = new DateTime(2019, 6, 20, 12, 58, 29);
DateTime D = new DateTime(2019, 6, 20, 12, 59, 29);

比较失败。由于我需要在日期变化时调用一个方法,因此上面的示例每次都调用它,我不希望这种行为。有什么提示吗?

直接比较日期时间Date部分

bool isSameDay = (A.Date == B.Date);

只看日期部分

DateTime A = new DateTime(2019, 6, 20, 23, 58, 29);       
DateTime B = new DateTime(2019, 6, 21, 00, 01, 12);
Int32 dd = (B.Date-A.Date).Days;  

对于您的股票代号,为什么不使用TimeSpan变量来完成比较。 将 1 个静态时间跨度变量设置为 24 小时(1 天(,然后创建一个辅助变量来存储这些值。 然后,您将第二个时间跨度变量设置为等于两天的减法,这将使您知道一天是否已经过去了。

'

TimeSpan newDayReference = new TimeSpan(24,0,0);
TimeSpan comparison;
//These two variables set to show difference.
DateTime A= DateTime.Now.AddDays(-1);
DateTime B = DateTime.Now;
comparison = B - A;
if(comparison > newDayReference){ //success }

'

最新更新