我有兩個日期。一個日期是輸入,另一個是DateTime.Now
。我有他們的mm/dd/yyyy
格式,它甚至可以是m/d/yy格式。兩個日期都可以爲空,即數據類型爲DateTime?
,因爲我也可以將null也作爲輸入。現在我想僅將兩個日期與mm/dd/yyyy
或m/d/yy
格式進行比較。如何比較日期c#
Q
如何比較日期c#
39
A
回答
63
如果你在DateTime變量中有你的日期,他們不會有有的格式。
您可以使用Date
屬性返回DateTime值並將時間部分設置爲午夜。所以,如果你有:
DateTime dt1 = DateTime.Parse("07/12/2011");
DateTime dt2 = DateTime.Now;
if(dt1.Date > dt2.Date)
{
//It's a later date
}
else
{
//It's an earlier or equal date
}
7
首先,明白DateTime
對象沒有格式化。他們只是將年,月,日,小時,分鐘,秒等存儲爲一個數值,並且當您想以某種方式將其表示爲字符串時,就會發生格式化。您可以比較DateTime
對象而無需格式化它們。
要與DateTime.Now
比較輸入日期,您需要先解析輸入一個日期,然後比較公正的年/月/日部分:
DateTime inputDate;
if(!DateTime.TryParse(inputString, out inputDate))
throw new ArgumentException("Input string not in the correct format.");
if(inputDate.Date == DateTime.Now.Date) {
// Same date!
}
19
如果您在DateTime
變量有日期,那麼它的一個DateTime
對象,並且不包含任何格式。當您調用DateTime.ToString
方法並在其中提供格式時,格式化日期表示爲string
。
比方說你有兩個DateTime
變量,可以使用比較方法比較,
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 2, 0, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
代碼段從msdn拍攝。
相關問題
- 1. c#,比較日期
- 2. 如何在linq c中比較日期#
- 3. 如何比較兩個日期在c#
- 4. PostgreSQL和C++ - 比較日期
- 5. ASP.NET C#日期比較
- 6. iphone,objective c - 日期比較
- 7. Objective-C比較2日期
- 8. 在C中比較日期#
- 9. C#比較日期範圍
- 10. 在C++中比較日期
- 11. 如何比較日期?
- 12. 如何比較/排序日期與目標C日期排列
- 13. 比較日期
- 14. 日期比較
- 15. 比較日期
- 16. 日期比較
- 17. 日期比較
- 18. 日期比較
- 19. 日期比較
- 20. 比較日期
- 21. 比較日期
- 22. 日期比較
- 23. 日期比較
- 24. 比較日期
- 25. 如何比較兩個日曆日期?
- 26. SQL如果日期比較
- 27. Rails比較日期
- 28. 比較MySQL日期?
- 29. HQL比較日期
- 30. 比較日期時,
如果你不需要小時,分鐘等,比'DateTime.Now.Date'更好地使用'DateTime.Today' –
@Piotr - 好點 - 除非他們還需要訪問小時/分鐘/秒作爲另一部分工作。 –
@Damien_The_Unbeliever這是否適用於任何日期格式? 'yyyy/MM/dd'呢? – Arbaaz