C#中怎么实现Vb中DateDiff()函数的功能,请指教?
今日写程序时,需要判断一个日期是在当日日期之前还是之后的问题,于是自然地想到了Vb中的的那个DateDiff函数,想也拿来用用,但C#里好象没有这个函数,于是搜了一下,有位大哥写了如下的函数:
private double DateDiff(string howtocompare, System.DateTime startDate, System.DateTime endDate)
{
double diff=0;
System.TimeSpan TS = new System.TimeSpan(endDate.Ticks-startDate.Ticks);
switch (howtocompare.ToLower())
{
case "year":
diff = Convert.ToDouble(TS.TotalDays/365);
break;
case "month":
diff = Convert.ToDouble((TS.TotalDays/365)*12);
break;
case "day":
diff = Convert.ToDouble(TS.TotalDays);
break;
case "hour":
diff = Convert.ToDouble(TS.TotalHours);
break;
case "minute":
diff = Convert.ToDouble(TS.TotalMinutes);
break;
case "second":
diff = Convert.ToDouble(TS.TotalSeconds);
break;
}
return diff;
}
但我觉得此代码不够严谨,却又找不出更好的方法来!
另外开始,我也想到了用操作符“< ”或者“>”
比如:
if(dateTime1 < dateTime2)
{
//do something...
}
但C#好象不支持这样,于是我想到了C#里面的操作符重载,但具体实现我没有把握,我想问问线上的各位大虾,有没有更好的Idea阿?
private double DateDiff(string howtocompare, System.DateTime startDate, System.DateTime endDate)
{
double diff=0;
System.TimeSpan TS = new System.TimeSpan(endDate.Ticks-startDate.Ticks);
switch (howtocompare.ToLower())
{
case "year":
diff = Convert.ToDouble(TS.TotalDays/365);
break;
case "month":
diff = Convert.ToDouble((TS.TotalDays/365)*12);
break;
case "day":
diff = Convert.ToDouble(TS.TotalDays);
break;
case "hour":
diff = Convert.ToDouble(TS.TotalHours);
break;
case "minute":
diff = Convert.ToDouble(TS.TotalMinutes);
break;
case "second":
diff = Convert.ToDouble(TS.TotalSeconds);
break;
}
return diff;
}
但我觉得此代码不够严谨,却又找不出更好的方法来!
另外开始,我也想到了用操作符“< ”或者“>”
比如:
if(dateTime1 < dateTime2)
{
//do something...
}
但C#好象不支持这样,于是我想到了C#里面的操作符重载,但具体实现我没有把握,我想问问线上的各位大虾,有没有更好的Idea阿?
...全文
相关推荐
使用Timer组件实现倒计时_倒计时_C#_
使用Timer组件实现倒计时关键技术1:Timer的Enabled属性关键技术2:DateAndTime类的DateDiff方法
SQL里面的时间与c#.net与asp.net常用函数方法大全
SQL里面的时间与c#.net与asp.net常用函数方法大全: 25、Insert() 在字串中指定索引位插入指定字符。如: str1.Insert(1,"字");在str1的第二个字符处插入“字”,如果str1="中国",插入后为“中字国”; 26、PadLeft()、PadRight() 在字串左(或右)加空格或指定char字符,使字串达到指定长度,如: -----------------
几种语言实现公历计算
使用VB, C++, Java,c#实现了公历计算的算法实现,对比不同的语言之间的异同,仅供参考。
VB.NET从入门到精通,包含实例开发和复杂运用,以及VB.NET库与函数详细说明文档
VB.NET从入门到精通,包含实例开发和复杂运用,以及VB.NET库与函数详细说明文档
倒记时的小钟(VB6.0源代码),当输入时分秒按确定后,程序做显示倒计时,你可以在倒计时结束后去持行其它。
倒记时的小钟(VB6.0源代码),当输入时分秒按确定后,程序做显示倒计时,你可以在倒计时结束后去持行其它。


