我有2個整數字段表示YYYYMMDD格式的日期。減去這些字段中的2個以獲得它們之間的正確天數的最佳方法是什麼?如何用YYYYMMDD格式減去日期?
例如,如果我採取20100511和20100428之間的差異,我希望結果是13而不是83.我知道我需要將整數字段轉換爲日期格式,但是我嘗試過的所有內容都會引發異常或無法正常工作。
我錯過了什麼?在vb.net答案請
我有2個整數字段表示YYYYMMDD格式的日期。減去這些字段中的2個以獲得它們之間的正確天數的最佳方法是什麼?如何用YYYYMMDD格式減去日期?
例如,如果我採取20100511和20100428之間的差異,我希望結果是13而不是83.我知道我需要將整數字段轉換爲日期格式,但是我嘗試過的所有內容都會引發異常或無法正常工作。
我錯過了什麼?在vb.net答案請
應該是這樣的(未經測試!)
Dim date1 As DateTime = DateTime.ParseExact(yourdate1.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture)
Dim date2 As DateTime = DateTime.ParseExact(yourdate2.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture)
Dim days As Integer = date1.Subtract(date2).Days
我認爲你需要'yourdate.ToString()'爲提問者的情況,但在其他方面是正確的。 :) – Noldorin 2010-05-11 20:24:33
好點。我編輯過說你的日期必須是一個字符串,但這不是海報的內容。 – 2010-05-11 20:27:07
您的格式字符串錯誤。 'mm'是分鐘,'YYYY'不存在。 – 2010-05-11 20:27:55
Dim dt1 As Integer = 20100510
Dim dt2 As Integer = 20100520
Dim date1 As DateTime = DateTime.ParseExact(dt1.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture)
Dim date2 As DateTime = DateTime.ParseExact(dt2.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture)
Dim nDays As Integer = date1.Subtract(date2).Days
矯枉過正代碼...
// C#
var ds1 = 20100511;
var ds2 = 20100428;
Func<int, DateTime> getDate = s => DateTime.ParseExact(s.ToString(),
"yyyyMMdd",
null);
var d1 = getDate(ds1);
var d2 = getDate(ds2);
var diff = d1.Subtract(d2);
var result = diff.Days; //13
...
//VB.Net
Dim ds1 = 20100511
Dim ds2 = 20100428
Dim getDate = Function(s) DateTime.ParseExact(s.ToString(), "yyyyMMdd", Nothing)
Dim d1 = getDate(ds1)
Dim d2 = getDate(ds2)
Dim diff = d1.Subtract(d2)
Dim result = diff.Days '13
得到VB.Net用'Dim'替換'var'並刪除分號 – 2010-05-11 20:31:19
+1不重複ParseExact() – 2010-05-11 20:33:47
大聲笑...我只是改變它,所以它是VB ...猜我應該改回它。 – 2010-05-11 20:35:08
DateTime x = DateTime.ParseExact("19920715", "yyyyMMdd",CultureInfo.InvariantCulture);
DateTime y = DateTime.ParseExact("20141025", "yyyyMMdd", CultureInfo.InvariantCulture);
int days = (y.Subtract(x).Days);
float years = days/365;
Eww ...爲什麼它們是有效表示字符串的整數字段? – Noldorin 2010-05-11 20:23:11
@Noldorin:這是比字符串更有效的類型嗎? – 2010-05-11 20:28:06
Well DateTime是最合適的,我知道每個數據庫系統都支持。如果你打算使用一個整數,可能最好存儲滴答計數... – Noldorin 2010-05-12 13:52:35