VB.net小时(现在())不工作

时间:2013-07-26 00:27:30

标签: vb.net

我正在尝试创建一个vb.net程序,在用户选择的特定时间,代码将会执行。要做到这一点,我需要检查每分钟检查用户输入的小时和分钟是否与当前时间匹配(除非有更好的方法)。我试着用

Dim CurrentHour As Integer = Hour(Now())

但该程序给我一条错误信息,

  

表达式不是数组或方法,也不能有参数列表

我将使用Do循环来检查,但当然要看两者是否匹配,我需要当前的小时和分钟

4 个答案:

答案 0 :(得分:2)

您的代码是正确的。您需要注意的是这样的事情:

    Dim Now As Date
    Dim CurrentHour = Hour(Now())    

产生错误BC30471:表达式不是数组或方法,也不能有参数列表。

您现在可能看到问题,Now变量隐藏 Now函数。编译器现在被混淆,它不理解为什么括号存在。并且正确地抱怨Now不是数组而不是方法。它不是,现在不是。

除了重命名变量之外,您还可以通过提供更完整的名称来解决它:

    Dim CurrentHour = Hour(DateAndTime.Now()) 

虽然这看起来相当模糊,但使用DateTime.Now代替.NET方式而不是Basic方式。

答案 1 :(得分:1)

您应该使用native DateTime属性:

Dim CurrentHour As Integer = Now().Hour

如果您想使用Hour方法,您可能需要完全符合以下条件:

Microsoft.VisualBasic.Hour(Now())

因为小时很可能是应用程序中其他地方的属性或方法。

答案 2 :(得分:1)

Dim Inputtime As DateTime if Inputtime = Date.Now.Hour Then MsgBox("Success!") End If

我不会使用do循环,因为它会占用程序的所有内存。我会选择一个计时器,每嘀咕一次。让它解雇这个子程序。

答案 3 :(得分:0)

Task Scheduler是一个选项。我宁愿使用Marshal.FinalReleaseComObject然后使用代码底部的循环,GC.Collect之后需要再次调用GC.WaitForPendingFinalizers()