【问题标题】:Comparing combo box date to datadable box将组合框日期与可数据框进行比较
【发布时间】:2019-02-18 07:14:25
【问题描述】:

我的比较与我之前做过的组合框和数据表中的值之间的通常比较略有不同。我比较了字符串。

但在这种情况下,如果组合框中选择的日期是 2018 年 1 月 1 日;我需要检查数据表中的第一个日期(在日期列中)是否是 2018 年 1 月 2 日。如果数据表中的日期不是组合框中所选日期的一天后,它应该会产生错误,弹出错误或类似的东西。

验证将在组合框中的内容之后 1 天进行。

有没有比较特定日期之后的日期的方法?日期+1?像这样的东西?

【问题讨论】:

  • 您在寻找DateTime.AddDays(int) 吗?

标签: vb.net date datatable combobox compare


【解决方案1】:

您可以将两个日期相互比较(请参阅DateTime。结果将是具有Days 属性的TimeSpan 对象,您可以检查它是否为1。

Dim day1 As New Date(2008, 1, 1)
Dim day2 As New Date(2008, 1, 2)

Dim result As TimeSpan = day2 - day1

Console.WriteLine("Number of Days: {0}", result.Days)

您的另一个选择是从组合框中获取日期并为其添加一天,然后检查日期是否相等。为此,您可以使用AddDays 方法。

Dim day1 As New Date(2008, 1, 1)
Dim day2 As Date = day1.AddDays(1)

编辑
既然您询问了从字符串中解析的问题。您需要使用Date 解析函数(ParseTryParse)。

Dim date1 As Date
If Date.TryParse("2018-05-18", date1) Then
    Console.WriteLine("Date is {0}", date1)
Else
    Console.WriteLine("Couldn't parse")
End If

所以重写上面的例子我们会得到这样的结果:

Dim day1 As Date

If Date.TryParse(comboBox.Text, day1) Then
    Dim dayPlus1 As Date = day1.AddDays(1)
    ' Compare with your database date here
Else
    'Handle the error case here
End If    

【讨论】:

  • 我试过按照你的方法。我尝试将dim Date1分配为新日期(combobox.text)combobox.text是组合框中的选定日期....但它产生了“从字符串“2018-05-18”转换为“长”类型的错误是无效。这与我在尝试从数据行中第 1 列的第一个框中获取值时遇到的错误相同。所以 new Date 总是输入 Long 吗?
  • @user9990508 - 根据您的问题,我认为它已经是 Date 对象。我已更新我的答案以包含解析代码。
  • 我已经使用 .substring 方法解决了这个问题,所以现在我可以从数据表框中获取日期并将其存储到 Date1 和组合框中的日期并将其存储到 Date2 中。将使用您的方法 .addDays 并希望它有效。谢谢
  • @user9990508 - 我不确定使用substring 是如何解决任何问题的。您的组合框中有哪些类型的数据?如果组合框有日期/时间字符串,那么您可以将其解析为日期/时间对象。您要解决的实际问题是什么,您能否展示您的代码以及组合框和数据表中保存的数据示例?
  • substring 方法是为了解决读取 datagridview 框中内容的问题。它将该内容作为字符串“2018-05-18”并尝试转换为 Long。所以我所做的就是取一个子字符串,并将其设置为一个新的日期。并与组合框中的值相比,因为 datagridview 框中的值必须比组合框中的值 +1 天。代码; dim refStartDate as New Date (CLng(combobox.text.Substring(0,4)), (CLng(combobox.text.Substring(5, 2)), (CLng(combobox.text.Substring(8))
    然后我用“.addDays()”的方法来比较
猜你喜欢
  • 2019-10-14
  • 2022-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多