如何在If Else语句中处理第二个条件,我的if语句正在工作,但第二个条件不起作用(ElseIF),我的条件声明是否有问题?
Try
If Val(TextBox7.Text.Trim.Split(".")(1)) >= 60 Then
TextBox7.Text = Val(TextBox7.Text.Trim.Split(".")(0)) + 1 & "." & Val(TextBox7.Text.Trim.Split(".")(1) - 60) & " " & Format(Now, "MM/dd/yyyy")
TextBox3.Text = Val(TextBox3.Text.Trim.Split(".")(0)) & "." & Val(TextBox3.Text.Trim.Split(".")(1) - 60) & " " & Format(Now, "MM/dd/yyyy")
ElseIf Val(TextBox7.Text.Trim.Split(".")(1)) >= 100 Then
TextBox7.Text = Val(TextBox7.Text.Trim.Split(".")(0)) - 1 & "." & Val(TextBox7.Text.Trim.Split(".")(1) - 45) & " " & Format(Now, "MM/dd/yyyy")
TextBox3.Text = Val(TextBox3.Text.Trim.Split(".")(0)) - 1 & "." & Val(TextBox3.Text.Trim.Split(".")(1) - 45) & " " & Format(Now, "MM/dd/yyyy")
Else
TextBox7.Text = Format(Val(TextBox6.Text) + Val(Strings.Left(time.Text.Trim, 5)), "##.00") & Strings.Right(time.Text.Trim, 11)
TextBox3.Text = Format(Val(TextBox6.Text) + Val(Strings.Left(time.Text.Trim, 5)), "##.00") - 1 & Strings.Right(time.Text.Trim, 11)
'TextBox3.Text = Format(Val(TextBox3.Text.Trim.Split(".")(0) - 1) & "." & Val(TextBox3.Text.Trim.Split(".")(1)) & " " & Format(Now, "MM/dd/yyyy"))
End If
Catch
TextBox7.Text = Format(Val(TextBox6.Text) + Val(Strings.Left(time.Text.Trim, 5)), "##.00") & Strings.Right(time.Text.Trim, 11)
End Try
答案 0 :(得分:5)
>= 100
应该是第一个条件,因为它是限制性。
>= 60
应该是第二个条件,因为所有值>=100
也是>=60
。
答案 1 :(得分:0)
@James说的话+我建议你改写为Select Case
- 应该更容易理解:
Select Case Val(TextBox7.Text.Trim.Split(".")(1))
Case Is >= 100
TextBox7.Text = Val(TextBox7.Text.Trim.Split(".")(0)) - 1 & "." & Val(TextBox7.Text.Trim.Split(".")(1) - 45) & " " & Format(Now, "MM/dd/yyyy")
TextBox3.Text = Val(TextBox3.Text.Trim.Split(".")(0)) - 1 & "." & Val(TextBox3.Text.Trim.Split(".")(1) - 45) & " " & Format(Now, "MM/dd/yyyy")
Case Is >= 60
TextBox7.Text = Val(TextBox7.Text.Trim.Split(".")(0)) + 1 & "." & Val(TextBox7.Text.Trim.Split(".")(1) - 60) & " " & Format(Now, "MM/dd/yyyy")
TextBox3.Text = Val(TextBox3.Text.Trim.Split(".")(0)) & "." & Val(TextBox3.Text.Trim.Split(".")(1) - 60) & " " & Format(Now, "MM/dd/yyyy")
Case Else
TextBox7.Text = Format(Val(TextBox6.Text) + Val(Strings.Left(time.Text.Trim, 5)), "##.00") & Strings.Right(time.Text.Trim, 11)
TextBox3.Text = Format(Val(TextBox6.Text) + Val(Strings.Left(time.Text.Trim, 5)), "##.00") - 1 & Strings.Right(time.Text.Trim, 11)
End Select
还有几个兴趣点:
Val
,而是使用Convert
类,例如Convert.ToInt32
。TextBox3.Text.Trim.Split(".")
包装到一个函数中,然后重复使用。dateVar.ToString("MM/dd/yyyy")
。Val
,Format
,Strings.Left
都是VB6。 .NET等价物是Convert.*
,ToString
带格式字符串,Substring
。