程序开发 > C# > 正文

C#日期比较的3种方法

亮术网 2020-09-03 本网原创

日期比较是开发过程常常要用到的,比如有时需要确定是不是同一天、产品是否过期等都需要通过日期比较确定。日期比较通常有三种方法。

 

一、C#日期比较的3种方法

1、通过 CompareTo() 方法实现

代码如下:

DateTime dt1 = DateTime.Now;
  DateTime dt2 = DateTime.Now.AddDays(-1);
  int n = dt1.CompareTo(dt2);

如果 n > 0,则 dt1 > dt2;如果 n = 0,则 dt1 = dt2;如果 n < 0,则 dt1 < dt2。

 

2、通过 DateTime.Equals() 方法实现

代码如下:

DateTime dt1 = DateTime.Now;
  DateTime dt2 = DateTime.Now.AddDays(-1);
  bool r = DateTime.Equals(dt1, dt2);

如果 r 为真,则 dt1 = dt2;如果 r 为假,则 dt1 不等于 dt2。

 

如果需要判断两个日期是不是同一天,用此方法既方便又非常简单,代码如下:

bool oneDay = DateTime.Equals(dt1.Date, dt2.Date);

如果 oneDay 为真,则dt1和dt2是同一天;如果 oneDay 为假,dt1和dt2则不是同一天。

 

3、通过 Subtract() 方法实现

代码如下:

DateTime dt1 = DateTime.Now;
  DateTime dt2 = DateTime.Now.AddDays(-1);
  TimeSpan ts1 = new TimeSpan(dt1.Ticks);
  TimeSpan ts2 = new TimeSpan(dt2.Ticks);
  TimeSpan ts = ts1.Subtract(ts2);
  int day = ts.Days;

如果 day > 0,则 dt1 > dt2;如果 day = 0,则 dt1 = dt2;如果 day < 0,则 dt1 < dt2。需要注意的是, ts1.Subtract(ts2)后不能加 Duration(),因为 Duration() 是取绝对值,加上它就比较不出了。

 

二、C#日期比较应用

1、C# 只比较日期,不包含时间

代码如下:

DateTime dt1 = DateTime.Now;
  DateTime dt2 = DateTime.Now.AddDays(-1);
  int d = dt1.Date.CompareTo(dt2.Date);

如果 d > 0,则 dt1 > dt2;如果 d = 0,则 dt1 = dt2;如果 d < 0,则 dt1 < dt2。

 

2、C# 只比较时间

代码如下:

DateTime dt1 = DateTime.Now;
  DateTime dt2 = DateTime.Now.AddMinutes(-3);
  int t = dt1.TimeOfDay.CompareTo(dt2.TimeOfDay);

如果 t > 0,则 dt1 > dt2;如果 t = 0,则 dt1 = dt2;如果 t < 0,则 dt1 < dt2。

本文浓缩标签:日期比较C#