Public void Fee()
{
TimeSpan span1 = TimeSpan.FromHours(dtmIn.Value.Hour);
TimeSpan span2 = TimeSpan.FromHours(dtmOut.Value.Hour);
TimeSpan span3 = TimeSpan.FromMinutes(dtmIn.Value.Minute);
TimeSpan span4 = TimeSpan.FromMinutes(dtmOut.Value.Minute);
TimeSpan span5 = span2.Subtract(span1) + span4.Subtract(span3);
lblTotal.Text = (span5.TotalHours * 3).ToString("$#.00");
}
我不希望用户能够在PM期间输入时钟并在AM期间退出(基本上是一夜之间工作)。此外,不允许时钟输出时间在时钟之前。
答案 0 :(得分:1)
您应该致电new TimeSpan(hours, minutes, seconds: 0)
并检查 TimeSpan中的是否>
out TimeSpan。
答案 1 :(得分:0)
从您的代码示例中可以看出dtmIn
和dtmOut
是可为空的DateTime变量。如果是这样,你所要做的就是:
if (dtmIn.Value >= dtmOut.Value)
{
//'in' time is equal to or greater than 'out' time
... show my error message ...
}
当然你需要确保DateTime?变量有一个值(即在表达式中使用它们之前进行适当的错误检查)。
答案 2 :(得分:0)
你可能需要对你的逻辑更具体一点。你的意思是......
例如......
if (dtmIn.Value.Date != dtmOut.Value.Date)
{
...
}
TimeSpan
来查看他们工作了多少天。 例如......
if ((dtmOut.Value - dtmIn.Value).TotalDays > 1)
{
...
}
在任何情况下都不应该明确检查时间。首先,如果我工作25小时,那么我的退房时间仍然是在入住时间之后。