我正在创建一个程序,允许员工提出加班费。
我有一个名为 datePicker1 的日期选择器和四个时间选择器: shiftFrom , shiftTo , overtimeStart 和 overtimeEnd 以及名为 otType 的下拉列表(其中包含2个选项:"在转移前#34;以及"在转移&#34后)。
员工将通过选择日期来申请加班费 在时间选择器中输入时间,然后选择类型 加班(天气如果在班次之前或班次之后开始)。
我需要验证用户输入是否正确。
我认为在timepickers值中添加日期以使其成为DateTime然后进行比较然后就可以了。但是我在为 overtimeStart 和 overtimeEnd 添加日期时遇到了麻烦。
我通过执行此操作在shiftFrom和shiftTo中添加了日期
TimeSpan shiftfrom, shiftto;
shiftfrom = TimeSpan.Parse(shiftFrom.Text);
shiftto = TimeSpan.Parse(shiftTo.Text);
//variables that will handle the shift hours with date
DateTime dtShiftFrom = new DateTime();
DateTime dtShiftTo = new DateTime();
if(shiftfrom > shiftto)//this means that the employee's shift crosses date
{
dtShiftFrom = Convert.ToDateTime(datePicker1.Text).Add(shiftfrom);
dtShiftTo = Convert.ToDateTime(datePicker1.Text).AddDays(1).Add(shiftto);
}
else //the employee's shift from and to falls in the same day
{
dtShiftFrom = Convert.ToDateTime(datePicker1.Text).Add(shiftfrom);
dtShiftTo = Convert.ToDateTime(datePicker1.Text).Add(shiftto);
}
这是最好的方法吗?此外,如果在班次之前或班次之后放置加速开始和加班次,我该如何确定该日期。