主页 > 软件教程

C#日期比较的3种方法源代码

软件教程 2024-01-14

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

一、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#日期比较

电脑软硬件教程网 Copyright © 2016-2030 www.computer26.com. Some Rights Reserved.