Этот псевдокод дает вам алгоритм для определения разницы в минутах.
Предполагается, что, если время начала после окончания времени, время начала было фактически в предыдущий день.
startx = starthour * 60 + startminute
endx = endhour * 60 + endminute
duration = endx - startx
if duration < 0:
duration = duration + 1440
В startx
и endx
значения количество минут, прошедших с полуночи.
Это в основном делает:
- Получить количество минут от начала дня для начала.
- Получить количество минут от начала дня до конца.
- Вычитайте первый из последних.
- Если результат отрицательный, добавьте количество минут в день.
Не уверен, что, хотя вы не можете использовать дату/время функции манипуляции. Вы можете обнаружить, что вы могли бы легко построить дату/время и вычислить разницу во что-то вроде:
DateTime startx = new DateTime (1,1,2010,starthour,startminute,0);
DateTime endx = new DateTime (1,1,2010,endhour ,endminute ,0);
Integer duration = DateTime.DiffSecs (endx,startx)/60;
if (duration < 0)
duration = duration + 1440;
хотя это, вероятно, не требуется для простого сценария. Я бы придерживался псевдокода, который я дал выше, если вы не обнаружите, что делаете какие-то более сложные манипуляции с датой и временем.
Если затем вы хотите, чтобы включить продолжительность (в минутах) в часах и минутах:
durHours = int(duration/60)
durMinutes = duration % 60 // could also use duration - (durHours * 60)
«так что язык и сценарий не могут быть использованы» - что? –
Кажется, он вернется к ручке и бумаге тогда ... X-) –
Нет, извините, не знаю. – griegs