需求:使用者上次投票時間為 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 - dt1 | diff.TotalHours |
| 取日期部分 | dt.Date | 去除時間元件 |
| 格式化輸出 | ToString("yyyy-MM-dd HH:mm:ss") | 自訂格式 |
DateTime.UtcNow),顯示時轉換為使用者時區。DateTime 後再運算。datetime 欄位上,查詢效能最佳。DateTime 結構功能強大且直觀,善用其內建方法即可輕鬆處理各種時間業務邏輯。投票系統的間隔檢查,本質上就是 lastTime + interval < now 的簡單比較。