Flex Как разделить время между днями? - PullRequest
1 голос
/ 23 февраля 2012

Я хотел бы рассчитать продолжительность промежутка времени между 2 днями.

Пример: Дата: 1/1, начало в 23:00 и окончание продолжительностью 3 часа.

Я бы хотел разделить 3 часа на два дня, как показано ниже:

Дата --- Продолжительность

1 января ----- 1 час

2 января ----- 2 часа

Как разделить 3-часовой период времени с 1 января (1 час) и на следующий день 2 января (2 часа)?

спасибо.

дальнейшее объяснение:

В основном, в первый день 1 января в 23:00 бегать 3 часа, поэтому 3 часа будут продолжаться с 1 января по 2 января. Дать 1 января 1 час (как 1 января, начало в 23:00 [ночью]) и 2 января 2 часа [утром].

Так как же разделить часы между двумя днями в коде?

1 Ответ

2 голосов
/ 24 февраля 2012

Предполагается, что каждый день длится 24 часа (без перехода на летнее время), и что начало в целых часах (целое число от 0 до 23), и что продолжительность также является целым числом, и что промежуток времени не идетпосле второго дня:

hoursInFirstDay = (start + duration > 24) ? (24 - start) : duration;
hoursInSecondDay = duration - firstDay;

В течение нескольких минут вы можете сделать что-то подобное:

minsInDay = 24 *60;

startMoment = 60 * startHour + startMinutes;
durationInMins = 60 * durationHours + durationMinutes;

timeInFirstDay = (startMoment + durationInMins > minsInDay) ? (minsInDay - startMoment) : durationInMins;
timeInSecondDay = durationInMins - timeInFirstDay

hoursInFirstDay = int(timeInFirstDay / 60)
minsInFirstDay = timeInFirstDay % 60

hoursInSecondDay = int(timeInSecondDay / 60)
minsInSecondDay = timeInSecondDay % 60
...