Не позволяете пользователю установить время «Clock Out» <время «Clock In»? - PullRequest
0 голосов
/ 20 ноября 2011
    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 (в основном, в ночное время).Кроме того, не позволяя тайм-ауту быть раньше времени во времени.

Ответы [ 3 ]

1 голос
/ 20 ноября 2011

Вам следует позвонить new TimeSpan(hours, minutes, seconds: 0) и проверить, является ли в интервал времени > в интервал времени.

0 голосов
/ 20 ноября 2011

Вам, вероятно, нужно быть немного более конкретным с вашей логикой.Вы имеете в виду ...

  • Пользователь должен иметь возможность работать всю ночь?Если это так, это означает, что вам нужно проверить, чтобы убедиться, что дата , в которую они включились, совпадает с датой, в которую они поступили.`

Например ...

if (dtmIn.Value.Date != dtmOut.Value.Date) 
{ 
    ... 
}
  • Пользователь не должен иметь возможность работать более 24 часов?Если это так, вы должны вычесть две даты и использовать полученный TimeSpan, чтобы увидеть, сколько дней они работали.

Например ...

if ((dtmOut.Value - dtmIn.Value).TotalDays > 1) 
{
    ... 
}

Ни в том, ни в другом случае вы не должны явно проверять время.Во-первых, если бы я работал 25 часов, тогда мое время выезда все равно было бы после времени регистрации.

0 голосов
/ 20 ноября 2011

Из вашего примера кода видно, что dtmIn и dtmOut являются обнуляемыми переменными DateTime. Если это так, все, что вам нужно сделать, это:

if (dtmIn.Value >= dtmOut.Value)
{
    //'in' time is equal to or greater than 'out' time
    ... show my error message ...
}

Конечно, вам нужно обеспечить DateTime? переменные имеют значение (т.е. выполняют соответствующую проверку ошибок перед использованием их в выражении).

...