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#_
DateAndTime.DateDiff方法: 这个方法是VB.NET和VBA中的方法,但在C#中,我们可以使用DateTime结构的Subtract方法或者TimeSpan结构的TotalMilliseconds
SQL里面的时间与c#.net与asp.net常用函数方法大全
### SQL时间操作与C# .NET中的日期时间处理方法详解#### SQL中的时间函数**1. GETDATE()**- **功能**: 获取当前系统日期和时间。
几种语言实现公历计算
VB是一种面向对象的编程语言,以其易学性和直观性著称。在VB中实现公历计算,通常会通过Date类型来表示日期,然后利用内置的日期函数如DateAdd、DateDiff进行日期运算。
VB.NET从入门到精通,包含实例开发和复杂运用,以及VB.NET库与函数详细说明文档
VB.NET是一种面向对象的编程语言,由微软公司开发并作为.NET框架的重要组成部分,它继承了经典Visual Basic的易用性与现代化编程语言的强大功能。
倒记时的小钟(VB6.0源代码),当输入时分秒按确定后,程序做显示倒计时,你可以在倒计时结束后去持行其它。
在VB6.0中,实现这样的倒计时功能需要理解以下几个核心知识点:1. **用户界面设计**:VB6.0中的Form用于构建应用程序的界面。


