Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

получение времени из 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.021 c
2-1422590261
Drowsy
2015-01-30 06:57
2017.01.15
Message методы


2-1424860792
SvetaZ
2015-02-25 13:39
2017.01.15
Поле Data для каждого Strings[i] в StringList


2-1408987238
Black7777
2014-08-25 21:20
2017.01.15
TChromium DCEF3


2-1421424584
Псб
2015-01-16 19:09
2017.01.15
AV после вызова GetTempFileNameW


15-1454623843
KilkennyCat
2016-02-05 01:10
2017.01.15
Задачка про сеть.