我有两个DateTime对象:StartDate和EndDate.我想确定StartDate是在此之前EndDate.这是如何在C#中完成的?
Dar*_*opp 194
if (StartDate < EndDate)
// code
Run Code Online (Sandbox Code Playgroud)
如果你只想要日期,而不是时间
if (StartDate.Date < EndDate.Date)
// code
Run Code Online (Sandbox Code Playgroud)
Rya*_*ldi 26
if(StartDate < EndDate)
{}
Run Code Online (Sandbox Code Playgroud)
DateTime支持普通的比较运算符.
Jon*_*way 23
if(dateTimeA > dateTimeB) Console.WriteLine("Do your own homework");
Run Code Online (Sandbox Code Playgroud)
Ben*_*ein 23
您可以使用重载的<或>运算符.
例如:
DateTime d1 = new DateTime(2008, 1, 1);
DateTime d2 = new DateTime(2008, 1, 2);
if (d1 < d2) { ...
Run Code Online (Sandbox Code Playgroud)
if (StartDate>=EndDate)
{
throw new InvalidOperationException("Ack! StartDate is not before EndDate!");
}
Run Code Online (Sandbox Code Playgroud)
这可能为时已晚,但为了让其他可能偶然发现此问题的人受益,我使用了一个扩展方法来解决这个IComparable问题:
public static class BetweenExtension
{
public static bool IsBetween<T>(this T value, T min, T max) where T : IComparable
{
return (min.CompareTo(value) <= 0) && (value.CompareTo(max) <= 0);
}
}
Run Code Online (Sandbox Code Playgroud)
使用此扩展方法IComparable使此方法更通用,并使其可用于多种数据类型,而不仅仅是日期。
你会像这样使用它:
DateTime start = new DateTime(2015,1,1);
DateTime end = new DateTime(2015,12,31);
DateTime now = new DateTime(2015,8,20);
if(now.IsBetween(start, end))
{
//Your code here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144646 次 |
| 最近记录: |