C#.net操作时间跨度和日期时间

时间:2015-06-30 18:43:29

标签: c# datetime logic timespan

我正在创建一个程序,允许员工提出加班费。

我有一个名为 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);
}

这是最好的方法吗?此外,如果在班次之前或班次之后放置加速开始加班次,我该如何确定该日期。

0 个答案:

没有答案