我正在构建一个基于旧版(经典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 ,有什么大不了的?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top