Вверх ↑
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
#1: 2014-10-12 00:55:04 ЛС | профиль | цитата
Добрый день.

Делаю небольшую програмку для считывания штрихкодов, штрихкоды на работе печатаются 2 смены.

Смены:
Первая 2014-10-11 07:00:00 - 2014:10:12: 00:00:00
Вторая 2014:10:12 03:00:00 - 2014:10:12 05:50:00

Собственно получаются промежутки времени в которых ни каких смен нет (штрихкоды в это время не печатаются), но мне требуется чтобы в этот момент "простоя предприятия" программа сообщала на основе текущего времени и даты какая смена наступит следующая.
Как найти входит ли текущее время и дата в диапазон смены я разобрался, а как найти смену которая должна наступить не могу.
Подскажите, можно без схем..хотябы просто словами...что с чем сравниватьделитьумножать и т.д.



карма: 0

0
Ответов: 2274
Рейтинг: 677
#2: 2014-10-12 03:19:54 ЛС | профиль | цитата
Gunnman писал(а):
Как найти входит ли текущее время и дата в диапазон смены я разобрался, а как найти смену которая должна наступить не могу.
Так тем же способом. Зная время пересменки (время ведь между сменами известно), если текущее время в диапазоне первой пересменки, то следующая вторая смена и соответственно если вторая пересменка, то следующая первая смена.
карма: 11

0
Ответов: 1536
Рейтинг: 176
#3: 2014-10-12 08:20:10 ЛС | профиль | цитата
Здесь была нерабочая схема.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#4: 2014-10-12 16:20:45 ЛС | профиль | цитата
Gunnman писал(а):
Смены:
Первая 2014-10-11 07:00:00 - 2014:10:12: 00:00:00
Нифига себе смена!

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Gunnman
Ответов: 655
Рейтинг: 18
#5: 2014-10-12 18:56:20 ЛС | профиль | цитата
ser_davkin, спасибо! А что такое VCL? Гугл при поиске выдает RFC 850...но в нем про датувремя ни чего не сказано...
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#6: 2014-10-12 23:47:02 ЛС | профиль | цитата
ser_davkin,а зачем крутить дату если нужно только время ?
Вот изменил время и где правда ?
ser_davkin_3.png
А правда здесь:
ser_davkin_4.png

Нельзя так делать ((%5>%4)and(%5<(%1+1)))*2 без проверки - "А нужно ли добавлять эту единичку ?".
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 2ser_davkin_3.png [63KB] [591], ser_davkin_4.png [35.2KB] [581]
Ответов: 655
Рейтинг: 18
#7: 2014-10-13 01:07:20 ЛС | профиль | цитата
Tad, не поделитесь своим вариантом? Я пока схему ser_davkin, изучаю
карма: 0

0
Ответов: 1536
Рейтинг: 176
#8: 2014-10-13 07:39:07 ЛС | профиль | цитата
Tad писал(а):
Нельзя так делать ((%5>%4)and(%5<(%1+1)))*2 без проверки - "А нужно ли добавлять эту единичку ?".

Да, ты прав.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 655
Рейтинг: 18
#9: 2014-10-13 12:03:35 ЛС | профиль | цитата
Tad, раз уже ser_davkin, удалил свой пример, не покажете свой? Я хочу разобраться как мне мои смены и промежутки между сменами считать.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#10: 2014-10-13 14:49:28 ЛС | профиль | цитата
Gunnman, у меня нет примера - всё было сделано в IC и после проверки удалено.
Gunnman писал(а):
мне требуется чтобы в этот момент "простоя предприятия" программа сообщала на основе текущего времени и даты какая смена наступит следующая.
Всё очень просто - после окончания первой смены следующая вторая, после окончания второй - следующая первая (при двухсменной работе) или третья (при трёхсменной) и т.д. Даже считать ничего не надо.
Gunnman писал(а):
Собственно получаются промежутки времени в которых ни каких смен нет (штрихкоды в это время не печатаются),
А это как - непечатаются? А как же тётя Поля (уборщица) которая приходит за пару часов до начала смены, чтобы было чисто ? Ей что, регистрироваться не надо ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#11: 2014-10-13 15:05:53 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-02 08:52:26
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#12: 2014-10-13 15:29:55 ЛС | профиль | цитата
Правильно. Откуда железо знает, что 00:00 это уже следующие сутки ?
Железо не может понять. как это смена началась в 16 часов, а закончилась перед этим в 00:00 ?
Ты же, чтобы узнать длительность смены, в уме производишь замену 00:00 на 24 и 24-16=8.
Т.е. если время начала смены > времени конца смены, то нужно добавить 1-и сутки (что и сделал ser_davkin),
а если вместо 00:00 напишешь 23:59:58, то всё должно сработать.
Нужно добавить проверки (Н - начало смены, К - конец смены, цифра - номер смены) :
If H1>K1 then K1:=K1+1;
If H1>H2 Then H2:=H2+1;
If H1>K2 Then K2:=K2+1;
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 655
Рейтинг: 18
#13: 2014-10-13 15:57:34 ЛС | профиль | цитата
Tad, спасибо! Нам молодым бестолочам еще учиться и учиться...)))
------------ Дoбавленo в 15.57:
Про +1 сутки подозревал но не в ту степь ушел.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#14: 2014-10-13 21:20:24 ЛС | профиль | цитата
.....
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 655
Рейтинг: 18
#15: 2014-10-15 04:30:05 ЛС | профиль | цитата
Tad, я сделал проверки, code_34429.txt

Не могли бы вы взглянуть на схему? У меня в силу малого опыта есть сомнения, что не правильно у меня определяются смены и переходы между ними.

карма: 0

0
файлы: 1code_34429.txt [4KB] [262]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)