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

Вниз

получение времени из DateTimePicker   Найти похожие ветки 

 
SKIPtr ©   (2014-12-27 08:11) [0]

драсте подскажите как можно из DateTimePicker.Time получить результат чтоб секундах было "00"


 
MBo ©   (2014-12-27 10:09) [1]

Пикер тут, вобщем-то, ни при чём.
ДУмаю, стоит сформировать строку FormatDateTime и заменить секунды в строек на нули.

Округление до минут во внутреннем формате TDateTime возможно, но ненадёжно.


 
SKIPtr ©   (2014-12-27 13:39) [2]

а как округлить


 
MBo ©   (2014-12-27 13:49) [3]

 dt := Now;
 dt := Floor(dt * 1440) / 1440 + 1/864000;


 
MBo ©   (2014-12-27 13:50) [4]

Не проще ли не выводить секунды вовсе?


 
SKIPtr ©   (2014-12-27 16:54) [5]

спасибо  попробую формулу


> Не проще ли не выводить секунды вовсе?

я сочиняю че то вроде планеровщика напоминалки
и он в заданое время должен че то сделать
и вот думаю если там будет 50сек то это почти следующая минута
вот поэтому хочу обнулить


 
Jeer ©   (2014-12-27 17:10) [6]

Для этого достаточно обычного таймера (TTimer) с установкой срабатывания в 1 минуту.


 
brother ©   (2014-12-27 17:27) [7]

Можно использовать TDXTimer, он точнее...


 
SKIPtr ©   (2014-12-27 18:15) [8]


> Для этого достаточно обычного таймера (TTimer) с установкой
> срабатывания в 1 минуту.


я использую SetWaitableTimer
на TTimer делал там у меня строка текущего времени сравнивалась со строкой установленого времени
а вот решил усовершенствовать


 
Inovet ©   (2014-12-27 19:37) [9]

> [8] SKIPtr ©   (27.12.14 18:15)
> на TTimer делал там у меня строка текущего времени сравнивалась
> со строкой установленого времени

Странное решение. Ну если событий запланировано 100500 на 1 сутки, так ладно.


 
SKIPtr ©   (2014-12-27 20:49) [10]


> Странное решение. Ну если событий запланировано 100500 на
> 1 сутки, так ладно.

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


 
Inovet ©   (2014-12-27 21:39) [11]

> [10] SKIPtr ©   (27.12.14 20:49)

Таймер раз в секунду сравбатывал, и строка времени сравнивалась с текущей строкой времени? Что за строки времени, я догадываюсь.


 
SKIPtr ©   (2014-12-28 07:34) [12]

а че догадывться строку полусаю через TimeToStr потом сравниваю строки
вот и сравниваю


 
Inovet ©   (2014-12-28 12:29) [13]

> [12] SKIPtr ©   (28.12.14 07:34)

Вот я и говорю - странное решение. Почему сразу не выставить таймер на нужное время?


 
Inovet ©   (2014-12-28 12:32) [14]

Ну и про строки. На кой чёрт в строки преобразовывать и их сравнивать? Сразу нельзя что ли сравнить с учётом заданной погрешности?


 
SKIPtr ©   (2014-12-28 16:28) [15]


> нельзя что ли сравнить с учётом заданной погрешности?

а как это сделать
потому что сравнивать строки у которых точность до секунды возможно каждую секунду
а если сравнивать TDateTime то это еще меньше
и мне надо проверять чаще чем через секунду и при этом мало шансов шо оно будет равно
ну если только не округлить до секунд но это вопрос с которого я начал эту тему


 
sniknik ©   (2014-12-28 17:22) [16]

> и при этом мало шансов шо оно будет равно
кто ж на равно числа с плавающей запятой сравнивает... сказали же погрешность, сколько у тебя там? наприер через 10 сек +- 0.5. ну так добавь к текущему 9.5 сек, и проверяй на на больше этому результату... сработает через 9.6 пройдет, 10.1 тоже пройдет... если нужно еще и верхний предел ограничит (ексепт выдавать) ну так со вторым проверочным с + а не минус т.е. 10.5 сравнивай, уже на меньше для положительного результата и эксепта если не прошло.


 
Плохиш ©   (2014-12-28 23:17) [17]

Для "планеровщика напоминалки" достаточно операции "больше либо равно", которая прекрасно работает с нецелыми типами, коим и является тип DateTime.

PS. Преобразованию в строку для сравнения явно индус какой-нибуть обучил.


 
Andy BitOff ©   (2014-12-29 00:48) [18]

Palladin показывал эпичный код, реально существующий: if IntToStr(n) = "2" then Здесь, видимо, из той же серии


 
Германн ©   (2014-12-29 02:21) [19]


> Плохиш ©   (28.12.14 23:17) [17]
>
> Для "планеровщика напоминалки" достаточно операции "больше
> либо равно", которая прекрасно работает с нецелыми типами,
>  коим и является тип DateTime.
>

Для любого планировщика.
Но хрен знает что ТС называет планировщиком, раз ему надо
> проверять чаще чем через секунду и при этом мало шансов
> шо оно будет равно

Типичный вопрос XYZ.



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

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

Наверх





Память: 0.49 MB
Время: 0.047 c
15-1456097809
Kerk
2016-02-22 02:36
2017.01.15
Работа стоя


3-1311770178
SQLEXPRESS
2011-07-27 16:36
2017.01.15
Ни кто не не желает в SQL размяться? Время исполнения


2-1423635127
Aleshka
2015-02-11 09:12
2017.01.15
Размеры fsMDIChild формы


15-1453566333
Fragen
2016-01-23 19:25
2017.01.15
Как пишутся приложения для нахождения оптимального маршрута?


2-1419963322
AlexeyTG
2014-12-30 21:15
2017.01.15
Чтение из HKEY_LOCAL_MACHINE правильно ли реализовано





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский