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

 更新时间:2023年12月14日 08:52:52   作者:懒人咖  
这篇文章主要为大家详细介绍了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#日期比较内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# WPF 自定义按钮的方法

    C# WPF 自定义按钮的方法

    这篇文章主要介绍了C# WPF 自定义按钮的方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#类的多态性详解

    C#类的多态性详解

    这篇文章主要为大家详细介绍了C#类的多态性,主要有两种:一是编译时的多态性,二是运行时的多态性,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • 详解C#中的Async和Await用法

    详解C#中的Async和Await用法

    这篇文章主要介绍了C#中的Async和Await用法,包括在C#5.0下一些新特性的影响,需要的朋友可以参考下
    2015-07-07
  • C#实现将像素转换为页面单位的方法

    C#实现将像素转换为页面单位的方法

    这篇文章主要介绍了C#实现将像素转换为页面单位的方法,涉及C#像素转换在图形绘制中的技巧,需要的朋友可以参考下
    2015-06-06
  • C#缓存之SqlCacheDependency用法实例总结

    C#缓存之SqlCacheDependency用法实例总结

    这篇文章主要介绍了C#缓存之SqlCacheDependency用法,在C#程序设计中有一定的实用价值,需要的朋友可以参考下
    2014-08-08
  • WPF实现背景灯光随鼠标闪动效果

    WPF实现背景灯光随鼠标闪动效果

    这篇文章主要为大家详细介绍了WPF实现背景灯光随鼠标闪动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • C#5.0中的异步编程关键字async和await

    C#5.0中的异步编程关键字async和await

    这篇文章介绍了C#5.0中的异步编程关键字async和await,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#开发WinForm根据条件改变DataGridView行颜色

    C#开发WinForm根据条件改变DataGridView行颜色

    这篇文章介绍了C#开发WinForm根据条件改变DataGridView行颜色的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Unity快速生成常用文件夹的方法

    Unity快速生成常用文件夹的方法

    这篇文章主要介绍了Unity快速生成常用文件夹的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • C#图片处理如何生成缩略图的实现

    C#图片处理如何生成缩略图的实现

    本文主要介绍了C#图片处理如何生成缩略图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论