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# 的人回答问题时,为什么要标记 htmljavascript 和 jquery?请重新标记。 对不起,我是 *** 的新手。如何重新标记它?? 不想听起来太像 c#nt:你试过谷歌搜索 c# datediff 吗?因为它在前 10 个答案中都有此代码。 看看DateTimeDateTime.SubtractTimeSpan(即使在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# 的年份日期差异 [重复]

用C#编写的asp.net 和 vb.net编写的asp.net 有性能上的差异吗?

查找日期之间的天数C# [重复]

在 C# 中将 APRIL,03/2013 字符串转换为 DateTime [重复]

在 C# 中使用 LINQ 在字符串数组中查找确切的子字符串

在vb.net中使用c#条件运算符[重复]