【问题标题】:How to check if datetime value is greater than previous value in loop如何检查日期时间值是否大于循环中的先前值
【发布时间】:2016-06-08 22:03:36
【问题描述】:

我在这里使用基础设施控制。如何验证和检查当前的数据时间值是否大于以前的数据时间值。

在循环中,我有Dim datePicker As UltraDateTimeEditor = o 的列表,所以如果当前日期选择器值大于前一个值,我需要检查每个循环

记住一点……一些数据选择器的值可能是空的。所以我们不应该和那些比较。

 For Each o As Object In UltraPanel1.ClientArea.Controls
    If TypeOf (o) Is UltraDateTimeEditor Then
      Dim datePicker As UltraDateTimeEditor = o
      Dim datevalue As Object = datePicker.Value
    End If
 Next

【问题讨论】:

  • Turn Option Strict On 您很可能会看到一些变化...
  • 另一个关于“以前”的奇怪概念。仅仅因为它首先弹出循环并不意味着它应该具有“在”后面的值“之前”的值。如果有 3 个,则测试有效日期只需 2 个 If 语句。

标签: .net vb.net infragistics


【解决方案1】:

您需要使用在循环外定义的变量,以便您可以在该变量中保存前一个值并将当前值与前一个值进行比较。并且在每次迭代结束时,前一个值应该用当前值更新,因为它将是下一次迭代的前一个值;以下代码将对您有所帮助:

Dim prevDatevalue As Object = Nothing
For Each o As Object In UltraPanel1.ClientArea.Controls
    If TypeOf (o) Is UltraDateTimeEditor Then
      Dim datePicker As UltraDateTimeEditor = o
      Dim datevalue As Object = datePicker.Value
      If prevDatevalue <> Nothing Then
         If prevDatevalue < datevalue Then
            ' Do something Previous value is Lesser
         Else
            ' Do something else Previous value is greater
         End If  
      End IF      
         prevDatevalue = datePicker.Value 
    End If
Next

【讨论】:

  • VB 没有Null,也许你的意思是Nothing?
  • @theB:感谢您的指正;它帮助我改进我的答案。我已经更新了答案
  • @un-lucky 你是完美的!
猜你喜欢
  • 2015-07-29
  • 1970-01-01
  • 2011-12-20
  • 2016-09-25
  • 2013-06-25
  • 2020-02-03
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
相关资源
最近更新 更多