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

C# 時間加減運算與比較實務範例

     編輯:關於C語言

常見場景:投票系統的間隔時間檢查

需求:使用者上次投票時間為 2006-04-23 12:22:05,規定間隔 72 小時才能再次投票。判斷目前是否允許投票。

核心程式碼

int intervalHours = 72;
DateTime lastVoteTime = Convert.ToDateTime("2006-04-23 12:22:05");
DateTime nextAllowedTime = lastVoteTime.AddHours(intervalHours);
DateTime now = DateTime.Now;

Console.WriteLine($"現在時間:{now}");
Console.WriteLine($"上次投票:{lastVoteTime}");
Console.WriteLine($"下次允許:{nextAllowedTime}");

if (nextAllowedTime < now)
{
    Console.WriteLine("可以投票");
}
else
{
    Console.WriteLine("尚未達間隔時間,不可投票");
}

關鍵點解析

  • DateTime.AddHours():回傳新的 DateTime,不修改原物件(不可變)。
  • 直接使用 <、> 比較 DateTime,語意直觀。
  • 資料庫欄位型別應為 datetime,避免字串轉換效能損耗與格式錯誤。

擴充:其他常用時間運算

需求方法範例
增加天數AddDays(double)dt.AddDays(7)
增加月份AddMonths(int)dt.AddMonths(1)
計算時間差TimeSpan diff = dt2 - dt1diff.TotalHours
取日期部分dt.Date去除時間元件
格式化輸出ToString("yyyy-MM-dd HH:mm:ss")自訂格式

最佳實務建議

  1. 儲存時統一使用 UTC(DateTime.UtcNow),顯示時轉換為使用者時區。
  2. 避免字串比較日期,務必轉為 DateTime 後再運算。
  3. 資料庫索引建立在 datetime 欄位上,查詢效能最佳。

結語

DateTime 結構功能強大且直觀,善用其內建方法即可輕鬆處理各種時間業務邏輯。投票系統的間隔檢查,本質上就是 lastTime + interval < now 的簡單比較。

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