简单地说,我现在有8个文本框从左到右,最右边有一个标签。 这就像是时间表的员工工作表,您可以将时间表放入其中 每个文本框,它计算时间和输出到右边的标签。
现在,我需要验证每个文本框中的数字,第一个文本框是“in”,第二个是“out” 并且第3次再次“进入”,第4次再次“退出”等等。 验证任务将是
我不知道如何解决这个问题。我需要一个干净,简单,易于管理,可扩展的 优雅的编程结构。有办法吗?
我尝试过验证器控件,但是有限制。我应该为每个人都有一个功能吗? 验证任务并调用它们中的每一个? (我有一个名为calculate的按钮,它将启动所有这些)。
我认为这对于拥有者来说是一个简单的解决方案 但它变得非常复杂和忙乱。有人可以向正确的方向倾斜吗? 对不起复杂的规则。顺便说一句,我对ASP.NET很陌生并且想要 看看大师将如何解决这个问题。 请帮忙。
答案 0 :(得分:2)
您的说明听起来像是在尝试计算4班制记录的总小时数 InTimeShift1,OutTimeShift1; InTimeShift2,OutTimeShift2; InTimeShift3,OutTimeShift4; InTimeShift4,OutTimeShift4
您不应该使用数字代替时间。例如,您的员工如何在下午2:35快速键入InTime?在数量上,它将是2.5833333333333333。我不相信你的所有用户都是数学专家。
相反,允许用户键入实际的InTime和OutTime。
然后进行验证:
Public Function fnbIsValidInputs( pvsTime As String) As Boolean
Dim vbValidationOK As Boolean = False
If IsDate( InTimeShift1 ) And IsDate( InTimeShift2 ) And IsDate( InTimeShift3 ) _
And IsDate( InTimeShift4 ) And IsDate( OutTimeShift1 ) _
And IsDate( OutTimeShift2 ) And IsDate( OutTimeShift3 ) _
And IsDate( OutTimeShift4 ) Then vbValidationOK = True
Return vbValidationOK
End Function
Public Function fniMinutesClocked( pvdInTime As Date, pvdOutTime As Date ) As Long
Return DateDiff( DateInterval.Minute, pvdInTime, pvdOutTime )
End Function