Это, очевидно, тривиальная проблема в системах, где начальные и конечные времена являются структурами данных, которые содержат как дату и время. Но есть множество систем, которые этого не делают. Для систем учета времени очень часто используется одна запись, содержащая дату, время начала и время окончания. В этом случае проблема менее тривиальна.
Есть, я думаю, два вопроса, вы спрашиваете:
- Как я могу сказать, если промежуток времени пересекает полночь?
- Если промежуток времени пересекает полночь, сколько времени произошло в первый день и сколько на втором?
Первый вопрос легко ответить: если время окончания до начала, временной интервал пересек полуночью.
Если это так, то у вас есть две суммы для расчета. Размер временного интервала, который произошел в дату, - это время между временем начала и полуночью. Величина временного интервала, который произошла на следующую дату, - это время между полуночью и временем окончания (т. Е. Только время окончания).
При расчете ставок оплаты, как правило, учитываются только часы работы, подумайте о клерке отеля, начинающемся в 10 часов вечера и работая до 6 утра, он все еще работал 8 часов, хотя его рабочее время растянуто на два дня – CheGueVerra 2008-10-05 21:58:26
Действительно , но если скорость отличается от одного дня к другому, вы должны рассчитать некоторые из этих часов с другим множителем. – 2008-10-05 22:21:52