使用VB.NET方法DateAndTime.DateDiff和C#的含义
-
05-07-2019 - |
题
我正在构建一个基于旧版(经典ASP)的新ASP.NET Web应用程序。 5年前构建此代码的人们使用了很多VBScript函数,比如DateDiff。
我目前正在开发一个模拟器,它可以使用日期进行大量计算。而且我在这些日期之间遇到了令人讨厌的差异,因为我没有像在VB 6中那样轻松地在c#中获得差异。
因此,我选择在ASP.NET Web应用程序中使用Microsoft.VisualBasic命名空间中的DateAndTime.DateDiff的路径。
你们知道这有什么影响吗?我有点担心这种方法。
干杯,
解决方案
唯一的含义是您正在向部署添加另一个程序集,并使用许多C#开发人员(可能需要维护您的代码的其他人)不知道的功能。但就我个人而言,我认为它并没有太大的错误。 MSDN Library文档通常很好,如果您想解释使用它的原因,也可以添加一些注释。
编辑:我还要注意,Microsoft.VisualBasic是从头开始实现的。它不包含古代代码。
其他提示
一种可能性是使用TimeSpan作为Itay指示,但除以30.4375(每月的平均天数),忽略分数月。这对我目前正在处理的事情已经足够接近了,但根据您的需求可能不够准确。例如,2月1日和3月1日之间的差异为0,(基于30.4375天的月定义)是正确的;但是,它可能不适合您的特定目的。
关注这一点是件好事,因为你不应该使用VisualBasic命名空间中的任何一个。
.net库提供了一个更好的解决方案,称为TimeSpan,以下列方式使用它:(dt1和dt2是 DateTime
s)
TimeSpan ts = dt2 - dt1; //Or ts = dt1.Subtract(dt2)
就我想提供的帮助而言,我真的认为快速浏览一下intellisence会告诉你其余部分(只需在Visual Studio中编写,然后添加 ts。
)
编辑:(y2 - y1)* 12 + m2 - m1
,有什么大不了的?