Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по временным промежуткам   Найти похожие ветки 

 
DimonS ©   (2005-02-21 10:50) [0]

В общем, столкнулся с такой проблемой в своей программке. В программе заносятся Путевые листы водителей по времени выезда-возвращения. И вот собственно проблема: как выбрать из ПЛ ночной смены ночные часы? Например, водила работал с 20-00 до 8-00, а ночные часы считаются с 22-00 до 6-00. Причем водитель может работать не только с 20, но и позже, а также приехать раньше 6-00. Вот и нужно знать время работы, которое приходится на ночные часы и на обычные.
В общем, нигде не смог найти ответ, мож кто подскажет?


 
Eraser ©   (2005-02-21 11:03) [1]

DimonS ©

А при чём тут делфи?


 
Johnmen ©   (2005-02-21 11:09) [2]

Вычислить пересечение с 20-00 до 8-00 и с 22-00 до 6-00
В чем проблема то ?


 
Юрий Зотов ©   (2005-02-21 11:15) [3]

> DimonS ©   (21.02.05 10:50)  
> В общем, нигде не смог найти ответ...

Наверное, в Интернете искали, потому и не нашли.

Искать надо было в учебнике арифметики за второй класс. Там ответ точно есть.


 
DimonS ©   (2005-02-22 02:08) [4]

Johnmen ©
Это-то понятно, но вот как это реализовать с помощью Дельфей? пробовал, но получается слишком уж громоздкая процедура.

Юрий Зотов ©
Ну конечно, за 2 класс в учебнике это есть, но там не изучабт Паскаль. А мне именно в нем нужно это реализовать.


 
default ©   (2005-02-22 02:20) [5]

не позорь скорпионов:-)


 
Германн ©   (2005-02-22 02:20) [6]

2 DimonS ©   (21.02.05 10:50)  

Если параметры путевых листов заносятся в базу данных, то и ориентируйся на её возможности. (SQL и пр.) Если - нет, то приведи свои решения тут. Может помогут. А пока без конкретизации вопроса - ответа быть не может. Тем более, что и вопрос, как следует, не задан!


 
DimonS ©   (2005-02-22 08:08) [7]

Да, параметры заносятся в БД. Заносится время выезда и время возвращения. И вот как программно вычислить, входит ли промежуток времени между 22-00 и 6-00 в это время?

Т.е. такой пример. Выехал в 20-00 вернулся в 23-30. Естественно, ночное время получается 1-30 и 2 часа дневного. Или выехал в 23-30 и возврат в 5-30, то 6 часов ночного времени, а дневного нет. Как все это реализовать? Работаю с TTable.

Пробовал высчитывать по разнице времени, но получается громоздко.
Если не сложно, выложите хоть кусок кода, чтобы было на что ориентироваться. Просто я практически не сталкивался при программировании со временем.


 
Инструктор   (2005-02-22 08:21) [8]

Если Дельфи - то читаем DateTime routines. Это по F1. Для начала.


 
Erik1 ©   (2005-02-22 11:55) [9]

Просто работай с TDataTime и храни время вместе с датой, тогда от начала работы отними начала вечернего времени. Получиш чтото больше 0 есть ночные часы.


 
red_imp   (2005-02-22 12:03) [10]

А ты в каком управлении работаеш, потому что у меня приблизительно такаяже проблем а возникала  правда не помню как выкрутился но всетаки если интересно может поисчу. Я пишу прогу для расчета расписания движения електротранспорта, если ты ваяеш чтото подобное напиши бо интересно как с этой проблемой (расписание) справляються другие.
А твоя проблема решается гдето всего в 4-8 if


 
Alx2 ©   (2005-02-22 12:07) [11]

DimonS ©   (22.02.05 8:08) [7]

Отрезок [a,b] - ночные. [c,d] - отработанное водителем. Ищем пересечение [a,b] и [c,d] = [max(a,c),min(b,d)]


 
Александр Иванов ©   (2005-02-22 12:08) [12]

red_imp   (22.02.05 12:03) [10]
Не хотел бы я ездить этим "електротранспорта"


 
Alx2 ©   (2005-02-22 12:08) [13]

Пипец... "здравствуй, светлое будущее" началось...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.044 c
3-1107425196
КаПиБаРа
2005-02-03 13:06
2005.03.06
Выделение строк в DBGrid с помощью ChackBox ов


9-1100945825
maxistent
2004-11-20 13:17
2005.03.06
"столкновение"


9-1101924928
Sphinx
2004-12-01 21:15
2005.03.06
Вертикальная винхронизация в D3D


1-1108985710
tupnyaki poshli
2005-02-21 14:35
2005.03.06
BlockRead/BlockWrite


3-1107159992
YK
2005-01-31 11:26
2005.03.06
как узнать ID только что добавленной записе в InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский