![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по временным промежуткам [D6, WinXP]
DimonS © (2005-02-21 10:50:00)В общем, столкнулся с такой проблемой в своей программке. В программе заносятся Путевые листы водителей по времени выезда-возвращения. И вот собственно проблема: как выбрать из ПЛ ночной смены ночные часы? Например, водила работал с 20-00 до 8-00, а ночные часы считаются с 22-00 до 6-00. Причем водитель может работать не только с 20, но и позже, а также приехать раньше 6-00. Вот и нужно знать время работы, которое приходится на ночные часы и на обычные.
В общем, нигде не смог найти ответ, мож кто подскажет?
Александр Иванов (2005-02-22 12:08:00) [1]red_imp (22.02.05 12:03) [10]
Не хотел бы я ездить этим "електротранспорта"
Alx2 (2005-02-22 12:08:00) [2]Пипец... "здравствуй, светлое будущее" началось...
Alx2 (2005-02-22 12:07:00) [3]DimonS © (22.02.05 8:08) [7]
Отрезок [a,b] - ночные. [c,d] - отработанное водителем. Ищем пересечение [a,b] и [c,d] = [max(a,c),min(b,d)]
red_imp (2005-02-22 12:03:00) [4]А ты в каком управлении работаеш, потому что у меня приблизительно такаяже проблем а возникала правда не помню как выкрутился но всетаки если интересно может поисчу. Я пишу прогу для расчета расписания движения електротранспорта, если ты ваяеш чтото подобное напиши бо интересно как с этой проблемой (расписание) справляються другие.
А твоя проблема решается гдето всего в 4-8 if
Erik1 (2005-02-22 11:55:00) [5]Просто работай с TDataTime и храни время вместе с датой, тогда от начала работы отними начала вечернего времени. Получиш чтото больше 0 есть ночные часы.
Инструктор (2005-02-22 08:21:00) [6]Если Дельфи - то читаем DateTime routines. Это по F1. Для начала.
DimonS (2005-02-22 08:08:00) [7]Да, параметры заносятся в БД. Заносится время выезда и время возвращения. И вот как программно вычислить, входит ли промежуток времени между 22-00 и 6-00 в это время?
Т.е. такой пример. Выехал в 20-00 вернулся в 23-30. Естественно, ночное время получается 1-30 и 2 часа дневного. Или выехал в 23-30 и возврат в 5-30, то 6 часов ночного времени, а дневного нет. Как все это реализовать? Работаю с TTable.
Пробовал высчитывать по разнице времени, но получается громоздко.
Если не сложно, выложите хоть кусок кода, чтобы было на что ориентироваться. Просто я практически не сталкивался при программировании со временем.
default (2005-02-22 02:20:00) [8]не позорь скорпионов:-)
Германн (2005-02-22 02:20:00) [9]2 DimonS © (21.02.05 10:50)
Если параметры путевых листов заносятся в базу данных, то и ориентируйся на её возможности. (SQL и пр.) Если - нет, то приведи свои решения тут. Может помогут. А пока без конкретизации вопроса - ответа быть не может. Тем более, что и вопрос, как следует, не задан!
DimonS (2005-02-22 02:08:00) [10]Johnmen ©
Это-то понятно, но вот как это реализовать с помощью Дельфей? пробовал, но получается слишком уж громоздкая процедура.
Юрий Зотов ©
Ну конечно, за 2 класс в учебнике это есть, но там не изучабт Паскаль. А мне именно в нем нужно это реализовать.
Юрий Зотов (2005-02-21 11:15:00) [11]> DimonS © (21.02.05 10:50)
> В общем, нигде не смог найти ответ...
Наверное, в Интернете искали, потому и не нашли.
Искать надо было в учебнике арифметики за второй класс. Там ответ точно есть.
Johnmen (2005-02-21 11:09:00) [12]Вычислить пересечение с 20-00 до 8-00 и с 22-00 до 6-00
В чем проблема то ?
Eraser (2005-02-21 11:03:00) [13]DimonS ©
А при чём тут делфи?