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阿?

...全文
1363 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的属性就好了。
内容概要:本文围绕“无人船编队在动态预设性能约束下的包容控制”这一主题,开展论文复现研究,重点基于Matlab平台实现控制算法的仿真验证。研究聚焦于多智能体系统的协同控制问题,针对无人船编队在复杂海洋环境下的运动控制需求,引入动态预设性能约束机制,确保编队在执行包容控制过程满足预定的收敛速度、稳态误差和超调量等性能指标。通过构建领航者-跟随者架构,结合图论与一致性理论,设计分布式控制协议,使跟随船能够在仅有部分成员获取领航者信息的情况下,依然实现对领导者的有效包围与协同运动。研究内容涵盖系统建模、控制器设计、稳定性分析及仿真实验,体现了现代控制理论在智能船舶系统的实际应用价值。; 适合人群:具备自动控制理论基础、熟悉Matlab/Simulink仿真环境,从事智能无人系统、多智能体协同控制、船舶自动化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握多智能体系统包容控制的基本原理与实现方法;② 学习如何将动态性能约束融入控制器设计以提升系统响应品质;③ 复现高水平期刊论文的控制策略,提升科研仿真能力与算法实现水平。; 阅读建议:建议读者结合相关控制理论教材与原始论文,深入理解Lyapunov稳定性分析、图论基础及自适应控制方法,并在Matlab环境逐步调试代码,观察不同参数设置对编队性能的影响,以达到理论与实践深度融合的学习效果。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 "天地图行政区+poi"是一项依托于天地图API构建的数据资源,其核心内容涵盖了地理信息领域的两大关键要素:POI(兴趣点)与行政区域划分。此类数据对于地图应用程序的开发、位置服务的构建以及数据分析等多个领域均具有显著的参考价值。在此之后,我们将对这两个核心概念进行深入阐释,并分析它们在实际应用场景的具体作用。1. POI(兴趣点) POI代表的是地图上具有特定功能或显著意义的地点,例如餐饮场所、酒店住宿、医疗机构、公园绿地、能源补给站等。这些地点因其能够满足用户的实际兴趣或需求而备受关注。在天地图的"tianditu_poi.json"数据文件,可能收录了各类兴趣点的详尽资料,包括名称标识、详细地址、经纬度坐标以及类别属性等。开发者借助这些数据能够实现地图上的兴趣点查找、路径导航、个性化推荐等一系列功能,从而为用户带来丰富的地理信息体验和服务。2. 行政区域 "tianditu_zhongguo_region_2.json"与"tianditu_zhongguo_region.json"数据文件则包含了国的行政区域详细资料。行政区域通常涵盖国家、省份、城市、区县级等不同层级的划分体系。此类数据在地图应用开发扮演着至关重要的角色,因为它们为地理位置提供了基本的框架结构,有助于用户明确不同地点之间的相互关系。借助行政区域数据,开发者能够实现地图上的区域划分展示、区域信息查询、范围条件筛选等功能,进而帮助用户更精确地定位和检索目标位置。3. 天地图API 天地图是国官方推出的地图服务解决方案,其API为开发者提供了多样化的地图服务接口,涵盖地图瓦片服务、标注功能、搜索服...

111,120

社区成员

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

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

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