jeudi 13 septembre 2018

Cannot Combine Conditions Normally in If Statement in VBScript

I'm trying to determine if it's between the hours of 12 am and 1 am. Here is my if statement:

If InStr(Time,"12") AND InStr(Time,"AM") Then 
    ' Do something
Else
    ' Do something else
End If

The problem is that this statement evaluates to false, even at if both of the conditions are true. I know this because I have tried a nested if like this

If InStr(Time,"12") Then
    If InStr(Time,"AM") Then
        ' Do something
...

And that works. This also works

If InStr(Time,"12")<>0 AND InStr(Time,"AM")<>0 Then
    ' Do something
...

But if a it works as a nested if, why can't I test both of the nested if conditions in a single if statement?

I replaced the InStr function calls with the values that they return

If 1 AND 10 Then
    ' Do something
Else
    ' Do something else
End If

And the same thing happened: the if statement evaluated as false and the "Do something else" commands were executed instead. But when I nested the second condition as another if statement inside the first if statement, the "Do something" commands were executed.

Why is that and is there any way to do this without the <>0 and without nesting?

Aucun commentaire:

Enregistrer un commentaire