c#代码来查找确切的日期差异,如vb [重复]
Posted
技术标签:
【中文标题】c#代码来查找确切的日期差异,如vb [重复]【英文标题】:c# code to find exact date difference as in vb [duplicate] 【发布时间】:2014-09-21 23:21:29 【问题描述】:在VB
中有一个名为DateDiff()
的函数。但在 C# 中它不可用。我想要一个 C# 中的函数或任何代码,它可以执行与 VB 中相同的 DateDiff 函数..
Dim datTim1 As Date = #1/4/2001#
Dim datTim2 As Date = #1/9/2001#
Dim wD As Long = DateDiff(DateInterval.Weekday, datTim1, datTim2)
Dim wY As Long = DateDiff(DateInterval.WeekOfYear, datTim1, datTim2)
我想在 C# 中执行此操作...
【问题讨论】:
当您希望知道 c# 的人回答问题时,为什么要标记 html、javascript 和 jquery?请重新标记。 对不起,我是 *** 的新手。如何重新标记它?? 不想听起来太像 c#nt:你试过谷歌搜索c# datediff
吗?因为它在前 10 个答案中都有此代码。
看看DateTime
、DateTime.Subtract
和TimeSpan
(即使在VB.net中你也应该这样做......)
如果您想拥有完全相同的语义,您可以在您的 C# 代码中引用 Microsoft.VisualBasic
程序集,然后只需使用 DateAndTime
中的 DateDiff
方法类。
【参考方案1】:
您可以创建自己的 DateDiff() 函数:
public enum Intervals
Days,
Months,
Years
public static int DateDiff(Intervals eInterval, System.DateTime dtInit, System.DateTime dtEnd)
if (dtEnd < dtInit)
throw new ArithmeticException("Init date should be previous to End date.");
switch (eInterval)
case Intervals.Days:
return (dtEnd.AddDays - dtInit).TotalDays;
case Intervals.Months:
return ((dtEnd.Year - dtInit.Year) * 12) + dtEnd.Month - dtInit.Month;
case Intervals.Years:
return dtEnd.Year - dtInit.Year;
default:
throw new ArgumentException("Incorrect interval code.");
【讨论】:
@GaneshGaxy 如果对您有帮助,请记住 you can upvote an answer【参考方案2】:-
在您的 C# 项目中添加对 .Net 程序集
Microsoft.VisualBasic
的引用
使用适当的参数调用Microsoft.VisualBasic.DateAndTime.DateDiff()
。
【讨论】:
无论如何我也接受这个答案。 thanx,我以后会用这个。这么好的一个。 可能不是最好的长期解决方案,但作为转换工作的一部分,这是一个很好的选择。 +1以上是关于c#代码来查找确切的日期差异,如vb [重复]的主要内容,如果未能解决你的问题,请参考以下文章
用C#编写的asp.net 和 vb.net编写的asp.net 有性能上的差异吗?
在 C# 中将 APRIL,03/2013 字符串转换为 DateTime [重复]