我在Windows上使用VisualStudio 2005在C#中工作。我想找到两个日期之间的最大日期。
假设:
From Date: 10-1-2009//Day-Month-YYYY
To Date : 1-3-2009
我想写一个方法,它返回“To Date”是两者中较大的一个。
答案 0 :(得分:59)
哦,来吧,这个人尖叫着是一个单行的
public static DateTime Max(DateTime a, DateTime b) {
return a > b ? a : b;
}
答案 1 :(得分:16)
尝试使用此尺寸,再次编写Max例程没有意义 - 使用泛型!
public T Max<T>(T value1, T value2) where T:IComparable
{
return value1.CompareTo(value2) > 0 ? value1 : value2;
}
答案 2 :(得分:6)
您可以使用Linq to Objects扩展方法Max
,如:
new [] {date1,date2,date3}.Max();
答案 3 :(得分:5)
DateTime类以数字方式将时间点存储为称为tick的64位整数值。 单个刻度表示一百纳秒或一千万分之一秒。 There are 10,000 ticks in a millisecond. 强>
由于DateTime
只是一个数值,因此您可以轻松地将它们与使用<
或>
运算符的任意两个数字进行比较。
答案 4 :(得分:2)
public static DateTime WhichIsBigger(DateTime first, DateTime second) {
if(first > second) return first;
else return second;
}
或者真正的1-liner:
Func<DateTime, DateTime, DateTime> whichIsBigger = (f, s) => f > s ? f : s;