| Таймер обратного отсчета |
| mishem | Дата: Пятница, 12 Февраль 2010, 00:23 | Сообщение # 31 |
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
| Quote (Alex3A) Некоторые представления винды о времени. Ни хрена не понял Я только учусь.
Я люблю думать что умею рисовать
|
| |
| |
|
| Alex3A | Дата: Пятница, 12 Февраль 2010, 02:38 | Сообщение # 32 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2957
Репутация: 31
Награды: 10
Статус: Offline
| Тип Word это 2 байта, 16 бит,столько же занимают 2 буквы, Double это число с плавающей запятой размером 8 байт.Это два варианта описания времени, как видиш это число, а знакомая тебе форма даты и времени это только описание этого числа. Имея само число, а не его описание, легче будет лепить всякие таймеры,не заботясь о разных днях, месяцах и годах
|
| |
| |
|
| Peter | Дата: Пятница, 12 Февраль 2010, 06:28 | Сообщение # 33 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (Alex3A) просите Petera что бы добавил в плагин Не нужен тут никакой ни плагин, ни байты с битами и кеглями, ни гигамозг! В NeoBook достаточно средств для того, чтобы сделать точный таймер хоть обратного, хоть прямого отсчета, и с переходом через 00:00, или сколько понадобится суток.
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| Alex3A | Дата: Пятница, 12 Февраль 2010, 11:30 | Сообщение # 34 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2957
Репутация: 31
Награды: 10
Статус: Offline
| Peter, А что же тогда тут происходит, на протяжении..33серий Уже давно надо было сделать, и забыть.
|
| |
| |
|
| DEMBEL | Дата: Пятница, 12 Февраль 2010, 11:52 | Сообщение # 35 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (Alex3A) Peter, А что же тогда тут происходит, на протяжении..33серий Хулио ищет свою пропавшую в детстве сестру потерявшую память, но даже не подозревает что она это давно служащая у него домработница.
|
| |
| |
|
| mishem | Дата: Пятница, 12 Февраль 2010, 13:08 | Сообщение # 36 |
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
| Quote (Alex3A) Peter, А что же тогда тут происходит, на протяжении..33серий Дело в том, что от не знания и недопонимания, копаю не в том направлении. Плюс еще начинаю в коде блудить. )) Сейчас вроде все, разобрался. Но ночью потерялся в коде, и бросил. Осталось мелочь, сутки перевести в секунды, и обратно. Потерялся, как высчитать дни, сколько их остается. Мож сегодня ночью разберусь.Добавлено (12 Февраль 2010, 13:08) --------------------------------------------- Саму формулу по высчитыванию дней, нашел. С учетом високосного года. И разницей дней в месяцах. Осталось только сам отсчет запустить. Но застрял. Так что DEMBEL, думаю задача будет решена.
Я люблю думать что умею рисовать
|
| |
| |
|
| Peter | Дата: Пятница, 12 Февраль 2010, 14:09 | Сообщение # 37 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (Alex3A) Peter, А что же тогда тут происходит, на протяжении..33серий Никто не вспомнил программу ас-мастера "Basta" или "StopPC"? Ведь, если вспомнить, у него там тоже использовался таймер, и насколько я знаю, плагинов не было. Не думаю, чтобы Андрей сделал прогу, которая врала бы на 5 сек в минуту. Не знаю, как это реализовано у Ас-мастера, но я бы привязывался не к "тикам" таймера, а к времени самой винды - тут вам и точнось, и привязка ко "времени коммпа", и переход через 00:00. Всё есть в готовом виде - глобальные переменные [Hour], [Minute], [Second], и не только. Остальное - арифметика первого класса!
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| DEMBEL | Дата: Пятница, 12 Февраль 2010, 14:35 | Сообщение # 38 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| нахрена там какието дни считать? таймер не будут на дни ставить, нужно просто предусмотреть чтобы таймер реагировал на переход времени с 23:59 на 00:00 и соответственно высчитывал разницу в рамках "24-часовой" системы отсчета а не в десятичной. Добавлено (12 Февраль 2010, 14:35) ---------------------------------------------
Quote (Peter) Не знаю, как это реализовано у Ас-мастера, но я бы привязывался не к "тикам" таймера, а к времени самой винды - тут вам и точнось, и привязка ко "времени коммпа", и переход через 00:00. Проблема не в этом, посчитать время можно но это полдела, сейчас мы говорим о ВИЗУАЛИЗАЦИИ процесса, т.е. визуального обратного отсчета по секундам, а время наступления события тут ни при чем, первый класс мы проходили и посчитаем, а визуализировать отсчет назад не выходит.
|
| |
| |
|
| Peter | Дата: Пятница, 12 Февраль 2010, 15:42 | Сообщение # 39 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Вот таймер обратного отсчета и с переходом через 00:00, и с визуализацией "как надо" в прикреплении. Весь "таймер" всего 7 строчек кода, остальное - "довески".
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| mishem | Дата: Пятница, 12 Февраль 2010, 16:18 | Сообщение # 40 |
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
| Quote (Peter) остальное - "довески". Так вот эти довески и ставят в тупик
Я люблю думать что умею рисовать
|
| |
| |
|
| Peter | Дата: Пятница, 12 Февраль 2010, 16:33 | Сообщение # 41 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (mishem) Так вот эти довески и ставят в тупик Да нет там никаких тупиков! Впопыхах я в примере сделал ошибку в "главном довеске". Вот исправленный вариант (в прикреплении).
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| DEMBEL | Дата: Пятница, 12 Февраль 2010, 16:33 | Сообщение # 42 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (Peter) Весь "таймер" всего 7 строчек кода, остальное - "довески". а че, вроде это оно и есть что нужно
|
| |
| |
|
| Peter | Дата: Пятница, 12 Февраль 2010, 16:49 | Сообщение # 43 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (mishem) Саму формулу по высчитыванию дней, нашел. С учетом високосного года. И разницей дней в месяцах А вот это - интересно! Посмотреть дашь?
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| mishem | Дата: Пятница, 12 Февраль 2010, 17:00 | Сообщение # 44 |
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
| DEMBEL, тогда я что то не пойму, что тебе нужно было? Добавлено (12 Февраль 2010, 17:00) ---------------------------------------------
Quote (Peter) А вот это - интересно! Посмотреть дашь? Peter, Вот сдесь хорошее описАние
Я люблю думать что умею рисовать
|
| |
| |
|
| DEMBEL | Дата: Пятница, 12 Февраль 2010, 17:07 | Сообщение # 45 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (mishem) тогда я что то не пойму, что тебе нужно было? я не мог правильно посчитать разницу во времени между текущим и заданным значением (что требовалось для запуска таймера в твоем примере), поэтому хотел чтобы таймер сам ее считал и показывал обратный отсчет, а мне бы оставалось только задать время выполнения события.
|
| |
| |
|
| Alex3A | Дата: Пятница, 12 Февраль 2010, 17:11 | Сообщение # 46 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2957
Репутация: 31
Награды: 10
Статус: Offline
|
|
| |
| |
|
| mishem | Дата: Пятница, 12 Февраль 2010, 18:57 | Сообщение # 47 |
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
| Alex3A, Хватит ржать DEMBEL, Попробуй, теперь и с днями. Там плагин с календарем. Только у меня почему то ошибка переодически выскакивает когда календарь несколько раз переставляю. Мож это только у меня?
Я люблю думать что умею рисовать
Сообщение отредактировал mishem - Пятница, 12 Февраль 2010, 19:12 |
| |
| |
|
| DEMBEL | Дата: Пятница, 12 Февраль 2010, 19:15 | Сообщение # 48 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (mishem) Попробуй, теперь и с днями. Там плагин с календарем. в любом случае, для моего проекта не требуется контроль дней, достаточно просто пересчитать разницу во времени при переходе через сутки, как в примере Peter. это скорее пригодится для напоминалки или календаря. А так пример работает нормально, ошибок не выскакивало (неск. раз дату переставил, ниче, пыхтит считает)
|
| |
| |
|
| Peter | Дата: Пятница, 12 Февраль 2010, 20:31 | Сообщение # 49 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| DEMBEL, только ты имей ввиду, что в моем примере переход на следующие сутки осуществляется, если указанное время меньше текущего, иначе считать будет текущие сутки. Чтобы таймер полностью корректно работал и показывал не только оставшиеся часы, но и дни (если понадобится) его надо чуток доработать! Quote (mishem) Peter, Вот сдесь Спасибо! Посмотрю...
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| DEMBEL | Дата: Пятница, 12 Февраль 2010, 23:48 | Сообщение # 50 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (Peter) переход на следующие сутки осуществляется, если указанное время меньше текущего, иначе считать будет текущие сутки. ну логично, это единственный возможный вариант когда надо считать с переходом ч/з сутки
|
| |
| |
|
| Peter | Дата: Пятница, 12 Февраль 2010, 23:56 | Сообщение # 51 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (DEMBEL) это единственный возможный вариант когда надо считать с переходом ч/з сутки Вариант не единственный, но я не знаю твоих задумок. Может этого и достаточно...
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| DEMBEL | Дата: Суббота, 13 Февраль 2010, 05:54 | Сообщение # 52 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Сериал продолжается! If "[HS]" "<=" "[Hour]" If "[MS]" "<=" "[Minute]" If "[SS]" "<=" "[Second]" Math "((24-[Hour])+[HS])+[Hour]" "2" "[HSS]" EndIf EndIf Else SetVar "[HSS]" "[HS]" EndIf Если задать HS меньше текущего, а MS и/или SS больше (например сейчас 16:30:00 а надо поставить 15:35:30) то будет лажа. Добавлено (13 Февраль 2010, 04:27) --------------------------------------------- Quote (Peter) переход на следующие сутки осуществляется, если указанное время меньше текущего, иначе считать будет текущие сутки. По условию выше, переход осуществляется только если часы и минуты и секунды в указанном времени меньше заданного. Если убрать условия для минут/секунд - опять жопа... Добавлено (13 Февраль 2010, 05:03) --------------------------------------------- короче, простыми условиями не обойтись для перехода через сутки, вариантов развития событий много. Например так: Ifex "[HS] < [Hour] and [MS] <= [Minute] and [SS] <= [Second]" Ifex "[HS] < [Hour] and [MS] >= [Minute] and [SS] >= [Second]" Ifex "[HS] <= [Hour] and [MS] <= [Minute] and [SS] < [Second]" тут проще действовать с другой стороны, в условиях задавать прямой отсчет далее, при невыполнении обратный, например типа: Ifex "[HS] >= [Hour] and [MS] >= [Minute] and [SS] > [Second]" SetVar "[HSS]" "[HS]" Else Math "((24-[Hour])+[HS])+[Hour]" "2" "[HSS]" EndIf но так тоже глючит когда [HS]>=[Hour] а все остальное меньше (08:15:30 -> 09:10:00). видимо без кучи условий не обойтись. Добавлено (13 Февраль 2010, 05:29) --------------------------------------------- пока рабочий вариант такой: Ifex "[HS] > [Hour] OR ([HS] = [Hour] and [MS] >= [Minute] and [SS] > [Second])" если задать часы больше текущего, то однозначно идем далее, если часы = заданным то смотрим на минуты и секунды. Добавлено (13 Февраль 2010, 05:38) --------------------------------------------- и еще странность, каждые 10(11) секунд значение секунд перескакивает сразу на 2 (было 40 стало 38), это таймер глючит или в коде чтото не то? Добавлено (13 Февраль 2010, 05:54) ---------------------------------------------
Quote (DEMBEL) пока рабочий вариант такой: Ifex "[HS] > [Hour] OR ([HS] = [Hour] and [MS] >= [Minute] and [SS] > [Second])" глюк если [HS]=[Hour] and [MS]>[Minutes] and [SS]<[Seconds] надо и для минут тоже прописать отдельно условие...
|
| |
| |
|
| Peter | Дата: Суббота, 13 Февраль 2010, 06:37 | Сообщение # 53 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (DEMBEL) Если задать HS меньше текущего, а MS и/или SS больше (например сейчас 16:30:00 а надо поставить 15:35:30) то будет лажа. Совершенно верно! Это я лоханулся, отступив от главной идеи! Да и времени тогда было в обрез, сории... Quote (DEMBEL) Ifex "[HS] > [Hour] OR ([HS] = [Hour] and [MS] >= [Minute] and [SS] > [Second])" Это никуда не годится! Все гораздо проще - см. исправленный вариант в прикреплении. Основная идея - перевод времени в секунды, и от этого "прыгать"! Quote (DEMBEL) и еще странность, каждые 10(11) секунд значение секунд перескакивает сразу на 2 (было 40 стало 38), это таймер глючит или в коде чтото не то? У меня ничего не перескакивает. Проверь время таймера - оно должно быть кратным секунде (желательно - 1 сек.)
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| DEMBEL | Дата: Суббота, 13 Февраль 2010, 06:57 | Сообщение # 54 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (Peter) У меня ничего не перескакивает. перескакивает когда таймер запущен не синхронно с системными секундами, со временем ошибка накапливается и происходит скачок на 2 сек.Добавлено (13 Февраль 2010, 06:52) --------------------------------------------- ну или чтото в этом роде, может что таймер отсчитывает секунды не абсолютно точно, может быть время от времени случается разброс. Добавлено (13 Февраль 2010, 06:54) --------------------------------------------- 44...42, 34...32, 23...21 вот мне так показывает, ну да ладно Добавлено (13 Февраль 2010, 06:57) --------------------------------------------- еще бы както избавиться от подергивания чисел в момент когда проверка идет If "[M]" "<" "10" SetVar "[M]" "!0[M]" EndIf If "[S]" "<" "10" SetVar "[S]" "!0[S]" EndIf ну это я как понимаю невозможно
|
| |
| |
|
| Peter | Дата: Суббота, 13 Февраль 2010, 06:58 | Сообщение # 55 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (DEMBEL) может быть время от времени случается разброс. Ну, не знаю... Единственное, что бывает - иногда (редко) слегка подергиваются цифры. Но, чтобы перескакивало не пару секунд, не было ни разу.
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| DEMBEL | Дата: Суббота, 13 Февраль 2010, 06:59 | Сообщение # 56 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (Peter) не было ни разу. просмотри более минуты, она не всегда часто бывает, но раз в 1-2 мин точно
|
| |
| |
|
| Peter | Дата: Суббота, 13 Февраль 2010, 07:03 | Сообщение # 57 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (DEMBEL) 44...42, 34...32, 23...21 вот мне так показывает, ну да ладно Может комп у тебя тормозит?.. Мистика! Quote (DEMBEL) еще бы както избавиться от подергивания чисел в момент когда проверка идет Попробуй через дополнительное присваивание переменных, т.е через "промежуточные" переменные. Лишняя пара строк кода беды не сделает.
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| DEMBEL | Дата: Суббота, 13 Февраль 2010, 07:07 | Сообщение # 58 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (Peter) Может комп у тебя тормозит?.. Мистика! ну может я запускаю в дебагере, поэтому...
|
| |
| |
|
| Peter | Дата: Суббота, 13 Февраль 2010, 07:12 | Сообщение # 59 |
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
| Quote (DEMBEL) просмотри более минуты, она не всегда часто бывает, но раз в 1-2 мин точно Смотрел минуты 4, аж в глазах зарябило, все нормально! Проверь что у тебя выставлено (количество знаков после запятой) в формулах вычисления. Должно быть "0" везде, или пусто. NeoBook по умолчанию ставит "2" знака.Добавлено (13 Февраль 2010, 07:12) ---------------------------------------------
Quote (DEMBEL) ну может я запускаю в дебагере, поэтому... Так сверни его окно. Хотя, не должно, вроде...
Чем дорожу... Чем рискую на свете я.... Мигом одним! Только мигом одним!... WHITESNAKE St.Petersburg - 11.12.2008
|
| |
| |
|
| DEMBEL | Дата: Суббота, 13 Февраль 2010, 07:18 | Сообщение # 60 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
| Quote (Peter) Попробуй через дополнительное присваивание переменных, т.е через "промежуточные" переменные. Лишняя пара строк кода беды не сделает. помоглоQuote (DEMBEL) просмотри более минуты, она не всегда часто бывает, но раз в 1-2 мин точно ладно я все проверю. если у других потом не будет тормозить а только у меня я как нибудь переживу, так что пофиг покаДобавлено (13 Февраль 2010, 07:18) --------------------------------------------- ладненько, тема таймера вроде раскрыта
|
| |
| |