最近在做一段跟日期有關的計算
我發現我計算錯誤,但目前看起來應該是沒問題,但確實是錯誤
這是我的程式碼
var CodeString1 = "ABCDE2022021522";
string DateSubStr = CodeString1.Substring(5, 10);
int Year = int.Parse(DateSubStr.Substring(0, 4));
int Month = int.Parse(DateSubStr.Substring(4, 2));
int day = int.Parse(DateSubStr.Substring(6, 2));
int hour = int.Parse(DateSubStr.Substring(8, 2));
DateTime BarCodeDt = new DateTime(Year, Month, day, hour,00,00);
var DateTimeNow = DateTime.Now;
var ts = new DateTime(DateTimeNow.Ticks - BarCodeDt.Ticks);
Console.WriteLine(ts.Day);
看中斷那個ts感覺就怪怪
可以幫我看一下我是錯在哪裡嗎?
這個才是你要的
TimeSpan ts = DateTimeNow - BarCodeDt;
Console.WriteLine(ts.Days);
一天的 ticks 是 864,000,000,000
new DateTime() 傳 ticks 當參數的話是從 0001/01/01 00:00:00 開始起算
你把Ticks丟進new DateTime裡面得出的是某一天的「日期」。
算時間差可以用Subtract
var ts = DateTime.Now.Subtract(BarCodeDt);
我個人比較偏好強型別,如果有明確宣告型別就會知道一個傳回TimeSpan, 一個傳回Datetime. IDE在你輸入的當下就會告訴你問題。