C#實(shí)現(xiàn)兩個(gè)日期比較大小
C# 兩個(gè)日期比較大小
直接比較大小
string ed = "2023-12-13 09:27:59.000";//過去式
DateTime nowDateTime = DateTime.Now;
DateTime expirationDate = Convert.ToDateTime(ed);//質(zhì)保期 長(zhǎng)日期
DateTime expirationDate1 = Convert.ToDateTime(Convert.ToDateTime(ed).ToString("yyyy-MM-dd"));//質(zhì)保期 短日期
DateTime now = Convert.ToDateTime(nowDateTime.ToString("yyyy-MM-dd"));
if (expirationDate1 < now)//短日期比較
{
textBox2.Text = "短日期比較,過保了";
}
if (expirationDate < nowDateTime)//長(zhǎng)日期比較
{
textBox3.Text = "長(zhǎng)日期比較,過保了";
}

工具類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);//質(zhì)保期 長(zhǎng)日期
DateTime expirationDate1 = Convert.ToDateTime(Convert.ToDateTime(ed).ToString("yyyy-MM-dd"));//質(zhì)保期 短日期
DateTime now = Convert.ToDateTime(nowDateTime.ToString("yyyy-MM-dd"));
int ints= DateTime.Compare(expirationDate1, now);//短日期比較
int intl = DateTime.Compare(expirationDate, nowDateTime);//長(zhǎng)日期比較

當(dāng)調(diào)用compare方法比較兩個(gè)時(shí)間大小時(shí),傳入的兩個(gè)時(shí)間參數(shù)除了必屬同一時(shí)區(qū)之外,還必須屬于同一個(gè)精度范圍。對(duì)兩個(gè) DateTime 的實(shí)例進(jìn)行比較,并返回一個(gè)指示第一個(gè)實(shí)例是早于、等于還是晚于第二個(gè)實(shí)例的整數(shù)。
方法補(bǔ)充
下面小編為大家整理了C#中實(shí)現(xiàn)日期比較的其他方法,希望對(duì)大家有所幫助
方法一
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>
/// 比較兩個(gè)日期大小
/// </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) {
//將日期字符串轉(zhuǎn)換為日期對(duì)象
DateTime t1 = Convert.ToDateTime(dateStr1);
DateTime t2 = Convert.ToDateTime(dateStr2);
//通過DateTIme.Compare()進(jìn)行比較()
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。比較時(shí)間大小的實(shí)驗(yàn)
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。計(jì)算兩個(gè)時(shí)間差值的函數(shù),返回時(shí)間差的絕對(duì)值:
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()+"小時(shí)"
+ts.Minutes.ToString()+"分鐘"
+ts.Seconds.ToString()+"秒";
}
catch
{
}
return dateDiff;
}
//3。實(shí)現(xiàn)計(jì)算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>
/// 計(jì)算兩個(gè)日期的時(shí)間間隔
/// </summary>
/// <param name="DateTime1">第一個(gè)日期和時(shí)間</param>
/// <param name="DateTime2">第二個(gè)日期和時(shí)間</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()+"小時(shí)"
+ ts.Minutes.ToString()+"分鐘"
+ ts.Seconds.ToString()+"秒";
return dateDiff;
} 到此這篇關(guān)于C#實(shí)現(xiàn)兩個(gè)日期比較大小的文章就介紹到這了,更多相關(guān)C#日期比較內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解C#中使用對(duì)象或集合的初始值設(shè)定項(xiàng)初始化的操作
這篇文章主要介紹了詳解C#中使用對(duì)象或集合的初始值設(shè)定項(xiàng)初始化的操作,文中分別講了對(duì)對(duì)象和字典的初始化,需要的朋友可以參考下2016-01-01
C#/VB.NET 在PDF中添加文件包(Portfolio)的方法
這篇文章主要介紹了C#/VB.NET 在PDF中添加文件包(Portfolio)的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-06-06
C#中緊耦合Tight Coupling和松耦合Loose Coupling的實(shí)現(xiàn)
緊耦合和松耦合是描述模塊或組件之間耦合程度的兩個(gè)概念,本文主要介紹了C#中緊耦合Tight Coupling和松耦合Loose Coupling的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Unity實(shí)現(xiàn)簡(jiǎn)單的多人聊天工具
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡(jiǎn)單的多人聊天工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
C#調(diào)用C++使用C++/CLI的實(shí)現(xiàn)
在C#開發(fā)過程中,我們可能會(huì)遇到需要調(diào)用Windows API 或是第三方庫的場(chǎng)景,本文主要介紹了C#調(diào)用C++使用C++/CLI的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03

