C#中怎么实现Vb中DateDiff()函数的功能,请指教?

SweetRain 2005-03-23 07:17:30
今日写程序时,需要判断一个日期是在当日日期之前还是之后的问题,于是自然地想到了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阿?

...全文
1361 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dazhu2 2005-03-23
  • 打赏
  • 举报
回复
TimeSpan time1=Convert.toDatetime("2004-10-11")-Convert.toDatetime("2004-1-11")
ofei 2005-03-23
  • 打赏
  • 举报
回复
两个datetime一减得到timespan 再判断timespan的属性也一样好用的
fanruinet 2005-03-23
  • 打赏
  • 举报
回复
DateTime结构实现了 IComparable,也就是说,
if(dateTime1 < dateTime2)
{
//do something...
}
是可以的。

另外,在C#中引用Microsoft.VisualBasic.dll,可以直接使用VB.NET中的DateDiff()函数
Microsoft.VisualBasic.DateAndTime.DateDiff()
dayasky 2005-03-23
  • 打赏
  • 举报
回复
不好意思,问题没看清楚,不要给我分。
dayasky 2005-03-23
  • 打赏
  • 举报
回复
参见timespan
timespan myTspan = datetime1 - datetime2;
然后判断myTspan的属性就好了。
内容概要:本文介绍了基于非支配排序遗传算法NSGA-II的综合能源系统优化调度方法,并提供了完整的Matlab代码实现。该方法针对综合能源系统存在的多目标、多约束、高维度和非线性优化问题,采用NSGA-II算法进行求解,有效处理了诸如经济性、环保性与系统可靠性之间的多目标冲突。通过构建典型综合能源系统模型(包括电、热、冷、气等多种能源形式),实现了对分布式能源、储能设备及各类负荷的协调优化调度。文详细阐述了NSGA-II算法的核心机制,如快速非支配排序、拥挤度计算与选择操作,确保获得分布均匀且收敛性良好的Pareto最优解集。此外,案例仿真验证了该方法在降低运行成本、提升能源利用效率和减少碳排放方面的优越性能。; 适合人群:具备一定优化算法基础和Matlab编程能力,从事能源系统规划、智能优化、电力系统或相关领域研究的科研人员及研究生。; 使用场景及目标:①应用于区域综合能源系统、微电网、智慧园区等多能协同调度场景;②用于解决多目标优化问题,掌握NSGA-II算法在实际工程的建模与求解流程;③支撑科研论文复现、课题研究与项目开发; 阅读建议:建议读者结合文提供的Matlab代码进行实践操作,深入理解算法实现细节与参数设置影响,同时可拓展至其他智能算法对比分析,进一步提升模型性能与应用广度。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧