首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 比較日期時間大小三種方法 — Compare、TimeSpan、加減運算

     編輯:關於C語言

方法一:DateTime.Compare 靜態比較


string s1 = "12:13", s2 = "14:14";
DateTime dt1 = Convert.ToDateTime(s1);
DateTime dt2 = Convert.ToDateTime(s2);
DateTime now = DateTime.Now;

if (DateTime.Compare(dt1, dt2) > 0)
    Console.WriteLine($"{s1} > {s2}");
else
    Console.WriteLine($"{s1} < {s2}");

if (DateTime.Compare(dt1, now) > 0)
    Console.WriteLine($"{s1} > {now}");
else
    Console.WriteLine($"{s1} < {now}");
  • 回傳 int:< 0 (第一較早)、= 0 (相等)、> 0 (第一較晚)。
  • 可比較任意兩個 DateTime。

方法二:TimeSpan 計算時間差 (絕對值)


private string DateDiff(DateTime dt1, DateTime dt2)
{
    try
    {
        TimeSpan ts1 = new TimeSpan(dt1.Ticks);
        TimeSpan ts2 = new TimeSpan(dt2.Ticks);
        TimeSpan diff = ts1.Subtract(ts2).Duration(); // 絕對值
        return $"{diff.Days}天 {diff.Hours}小時 {diff.Minutes}分 {diff.Seconds}秒";
    }
    catch { return null; }
}
  • Duration() 回傳絕對值 TimeSpan。
  • 適用需顯示「相差多少時間」的情境。

方法三:DateTime 加減運算 (減去指定天數)


TimeSpan span = new TimeSpan(40, 0, 0, 0); // 40 天
DateTime past = DateTime.Now.Subtract(span);
Console.WriteLine($"{DateTime.Now} - 40天 = {past}");
  • DateTime.Subtract(TimeSpan) 回傳新 DateTime。
  • TimeSpan 建構函式:new TimeSpan(days, hours, minutes, seconds)。

補充:DateTime 運算子多載

DateTime 支援 +、- (與 TimeSpan)、- (兩 DateTime 相減得 TimeSpan)、比較運算子 (<, >, <=, >=, ==, !=)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved