C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#日期比较

C#实现两个日期比较大小

作者:懒人咖

这篇文章主要为大家详细介绍了C#中实现两个日期比较大小的常见方法,文中的示例代码简洁易懂,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起了解一下

C# 两个日期比较大小

直接比较大小

string ed = "2023-12-13 09:27:59.000";//过去式
            DateTime nowDateTime = DateTime.Now;
            DateTime expirationDate = Convert.ToDateTime(ed);//质保期 长日期
            DateTime expirationDate1 = Convert.ToDateTime(Convert.ToDateTime(ed).ToString("yyyy-MM-dd"));//质保期 短日期
            DateTime now = Convert.ToDateTime(nowDateTime.ToString("yyyy-MM-dd"));

            if (expirationDate1 < now)//短日期比较
            {
                textBox2.Text = "短日期比较,过保了";

            }
            if (expirationDate < nowDateTime)//长日期比较
            {
                textBox3.Text = "长日期比较,过保了";

            }

工具类DateTime.Compare

格式:

int ints= DateTime.Compare(日期1, 日期2);
如果日期1=日期2,返回0;
如果日期1>日期2,返回1;
如果日期1<日期2,返回0;

string ed = "2023-12-13 09:27:59.000";//过去式
DateTime nowDateTime = DateTime.Now;
DateTime expirationDate = Convert.ToDateTime(ed);//质保期 长日期
DateTime expirationDate1 = Convert.ToDateTime(Convert.ToDateTime(ed).ToString("yyyy-MM-dd"));//质保期 短日期
DateTime now = Convert.ToDateTime(nowDateTime.ToString("yyyy-MM-dd"));
 

int ints= DateTime.Compare(expirationDate1, now);//短日期比较
int intl = DateTime.Compare(expirationDate, nowDateTime);//长日期比较

当调用compare方法比较两个时间大小时,传入的两个时间参数除了必属同一时区之外,还必须属于同一个精度范围。对两个 DateTime 的实例进行比较,并返回一个指示第一个实例是早于、等于还是晚于第二个实例的整数。

方法补充

下面小编为大家整理了C#中实现日期比较的其他方法,希望对大家有所帮助

方法一

public class TestController : Controller
    {
        // GET: Test
        public ActionResult Index()
        {
            //t1< t2
            string msg1 = string.Empty;
            string date1 = "2018-07-25";
            string date2 = "2018-07-27";
            CompanyDate(date1,date2,ref msg1);
            
            //t1> t2
            string msg2 = string.Empty;
            string date3 = "2018-07-27";
            string date4 = "2018-07-25";
            CompanyDate(date3, date4, ref msg2);

            return View();
        }

        /// <summary>
        /// 比较两个日期大小
        /// </summary>
        /// <param name="dateStr1">日期1</param>
        /// <param name="dateStr2">日期2</param>
        /// <param name="msg">返回信息</param>
        public void CompanyDate(string dateStr1, string dateStr2,ref string msg) {
            //将日期字符串转换为日期对象
            DateTime t1 = Convert.ToDateTime(dateStr1);
            DateTime t2 = Convert.ToDateTime(dateStr2);
            //通过DateTIme.Compare()进行比较()
            int compNum = DateTime.Compare(t1, t2);

            //t1> t2
            if (compNum > 0) {
                msg = "t1:(" + dateStr1 + ")大于" + "t2(" + dateStr2 + ")";              
            }
            //t1= t2
            if (compNum == 0) {
                msg = "t1:(" + dateStr1 + ")等于" + "t2(" + dateStr2 + ")";
            }
            //t1< t2
            if (compNum < 0) {
                msg = "t1:(" + dateStr1 + ")小于" + "t2(" + dateStr2 + ")";
            }
        }
    }

方法二

DateTime   t1   =   new   DateTime(100);  
  DateTime   t2   =   new   DateTime(20);  
  if   (DateTime.Compare(t1,   t2)   >     0)   Console.WriteLine("t1   >   t2");    
  if   (DateTime.Compare(t1,   t2)   ==   0)   Console.WriteLine("t1   ==   t2");    
  if   (DateTime.Compare(t1,   t2)   <     0)   Console.WriteLine("t1   <   t2");  
//1。比较时间大小的实验
string st1="12:13";
string st2="14:14";
DateTime dt1=Convert.ToDateTime(st1);
DateTime dt2=Convert.ToDateTime(st2);
DateTime dt3=DateTime.Now;
if(DateTime.Compare(dt1,dt2)>0)
msg.Text=st1+">"+st2;
else
msg.Text=st1+"<"+st2;
msg.Text+="\r\n"+dt1.ToString();
if(DateTime.Compare(dt1,dt3)>0)
msg.Text+="\r\n"+st1+">"+dt3.ToString();
else
msg.Text+="\r\n"+st1+"<"+dt3.ToString();
//2。计算两个时间差值的函数,返回时间差的绝对值:
private string DateDiff(DateTime DateTime1,DateTime DateTime2)
{
string dateDiff=null;
try
{
TimeSpan ts1=new TimeSpan(DateTime1.Ticks);
TimeSpan ts2=new TimeSpan(DateTime2.Ticks);
TimeSpan ts=ts1.Subtract(ts2).Duration();
dateDiff=ts.Days.ToString()+"天"
+ts.Hours.ToString()+"小时"
+ts.Minutes.ToString()+"分钟"
+ts.Seconds.ToString()+"秒";
}
catch
{
}
return dateDiff;
}
//3。实现计算DateTime1-36天=DateTime2的功能
TimeSpan ts=new TimeSpan(40,0,0,0);
DateTime dt2=DateTime.Now.Subtract(ts);
msg.Text=DateTime.Now.ToString()+"-"+ts.Days.ToString()+"天\r\n";
msg.Text+=dt2.ToString();
use "DateTime.Compare" static method
DateTime.Compare( dt1, dt2 ) > 0 : dt1 > dt2
DateTime.Compare( dt1, dt2 ) == 0 : dt1 == dt2
DateTime.Compare( dt1, dt2 ) < 0 : dt1 < dt2
        /// <summary>
         /// 计算两个日期的时间间隔
         /// </summary>
         /// <param name="DateTime1">第一个日期和时间</param>
         /// <param name="DateTime2">第二个日期和时间</param>
         /// <returns></returns>
         private string DateDiff(DateTime DateTime1, DateTime DateTime2)
         {
             string dateDiff = null;
             TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
             TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
             TimeSpan ts = ts1.Subtract(ts2).Duration();
             dateDiff = ts.Days.ToString()+"天"
                 + ts.Hours.ToString()+"小时"
                 + ts.Minutes.ToString()+"分钟"
                 + ts.Seconds.ToString()+"秒";
             return dateDiff;
         } 

到此这篇关于C#实现两个日期比较大小的文章就介绍到这了,更多相关C#日期比较内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文