【问题标题】:Compare two dates in vb.net whether they are equal or not比较 vb.net 中的两个日期是否相等
【发布时间】:2011-12-28 10:22:49
【问题描述】:

我有一个 Date 变量 startdt 和一个 String 变量 hdnsdate

假设startdt 具有 3/1/2012 形式的值,hdnsdate 具有 03/01/2012 形式的值。我怎么能比较这两个日期在 vb.net 中是相等的。

在我的程序的if 条件下,我想做这个检查。如果两个日期匹配,则移出if 循环,否则进入if 循环。

例如,我想要的 C# 示例。

if(startdt !=hdnsdate)
{
 //Do
}
else
{
//Do this
}

【问题讨论】:

  • 您的代码示例是 C#,但您使用 VB.NET 标记了它 - 是什么?
  • @Oded C# 是一个示例,我想在 vb.net 中这样做
  • 您的代码示例应该真正反映标签。这只是令人困惑。
  • @Oded 谢谢你,下次我会继续使用 ind

标签: asp.net vb.net date date-comparison


【解决方案1】:

使用 Parse、ParseExact 方法将 hdnsdate(字符串)解析为 Date 类型,并使用 DateTime.CompareEqualsCompareTo 方法。

字符串到日期

 Dim enddate as Date
 Date.TryParse(hdnsdate, enddate)

 If startdt = enddate Then
   'Do this
 Else
   'Do this
 End If

比较日期的替代方法:

Dim result = DateTime.Compare(date1, date2)
If result=0 Then
  'Do this
End If

【讨论】:

  • result = 0 如果它们相等?
  • @Web.11 是的!当 date1 晚于 date2 时返回大于零,当 date1 早于 date2 时返回小于零,当 date1 与 date2 相同时返回 0。
【解决方案2】:

你需要将字符串解析成DateTime,然后比较两者。

VB.NET

Dim parsed As DateTime = DateTime.Parse(hdnsdate)

If startdt != parsed Then

Else

End If

C#:

DateTime parsed = DateTime.Parse(hdnsdate);

if(startdt != parsed )
{
 //Do
}
else
{
//Do this
}

我建议查看DateTime 上定义的不同解析方法,因为您可能需要使用standardcustom 日期和时间格式字符串来确保正确解析字符串。

【讨论】:

    【解决方案3】:

    Dim result = DateTime.Compare(hdnsdate, date2)
    If result=0 Then
      'Do this
    End If
    

    【讨论】:

    猜你喜欢
    • 2016-09-16
    • 2013-08-18
    • 2021-09-14
    • 2023-03-11
    • 2010-12-05
    • 2016-03-06
    • 1970-01-01
    • 2015-10-26
    相关资源
    最近更新 更多