Работа над удобной программой для моего босса на работе в качестве летнего проекта между семестрами как для облегчения жизни для нее, так и для практики и улучшения моих навыков. Цель состоит в том, чтобы позволить ей быстро и легко вычислить часы и минуты работы человека. В самой форме есть серия текстовых полей для часов и часов для каждого дня на этой неделе. В настоящее время он пытается преобразовать текст txtbox в переменную Date, затем .Subtract() начинается с конца и сохраняет его в скользящей общей переменной, которая отображается в нижней части формы. Я не могу не думать, что есть лучший способ сделать это, и я абсолютно уверен, что наличие ниже кода кода 21 раз (7 дней, 3 смены) неэффективно.VB время ввода, лучший способ сделать это?
Dim StartTime As Date
Dim EndTime As Date
Dim Worked As System.TimeSpan
Dim WorkedTotal As System.TimeSpan
If chkFirst.Checked = True Then
StartTime = CDate(txtMonStart.Text)
EndTime = CDate(txtMonEnd.Text)
EndTime = EndTime.AddHours(12)
Worked = EndTime.Subtract(StartTime)
lblMonWork.Text = Worked.ToString()
WorkedTotal += Worked
В настоящее время он работает, в основном. Пользователь должен ввести «:» во входном времени, и если общее количество превышает 24 часа, оно отображает столбец дня (40-часовая 12-минутная рабочая неделя отображается как 1.16: 12). Я хотел бы устранить обе эти незапланированные функции и позволить проверять мои входные данные, когда фокус изменится на другой. Изменение bgcolor указывает на недопустимый ввод.
Любые яркие идеи?