Нужен новый тип (основное назначение - использовать как input) time? Пример: time t1=T'12:30:27';

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vladimir Karputov
Модератор
183492
Vladimir Karputov  

Часто во входных параметрах нужно задать именно время.

  • через string: неудобно (пользователь может ввести черти что), невозможно оптимизировать в тестере
  • использовать для часов и минут свои enum - (пользователь уже не сможет ввести черти что) - не очень удобно оптимизировать (нельзя вводить шаг) и нужно  два input параметра - один для часом, второй для минут
  • указывать часы и минуты через int - снова таки пользователь может ввести чёрт что и нужно два параметра.

А если был тип данных time, то входные параметеры выглядели бы так:


Iurii Tokman
75855
Iurii Tokman  
очень нужен !
SeriousRacoon
1079
SeriousRacoon  
Да, причем формат отображаемого контрола должен соответствовать формату значения, которым инициализируется переменная. Т.е., например, если =T'12:30:27' - контрол даёт вводить чч:мм:сс, если =T'12:30' - чч:мм, если =T'25.12.2018' - дату, если =T'25.12.2018 12:30' - дату и время.
Ihor Herasko
21191
Ihor Herasko  
По большому счету непосредственно новый тип данных не нужен. Нужно лишь дать возможность установки формата даты/времени, подобно тому как это сделано в TimeToString(). 
Georgiy Merts
9191
Georgiy Merts  

Когда мне однажды был нужен тип времени - я использовал прямое преобразование long -> datetime.

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

А вобще говоря, надо бы определиться, для чего нам нужно значение времени. По моему опыту - практически всегда нужен просто определенный момент в течении суток. И для этого я использую обычный int (если нужны целые часы), либо double - если нужны часы с минутами. Скажем, 14.3 - это 14:18:00

Ihor Herasko
21191
Ihor Herasko  
Georgiy Merts:

Когда мне однажды был нужен тип времени - я использовал прямое преобразование long -> datetime.

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

А вобще говоря, надо бы определиться, для чего нам нужно значение времени. По моему опыту - практически всегда нужен просто определенный момент в течении суток. И для этого я использую обычный int (если нужны целые часы), либо double - если нужны часы с минутами. Скажем, 14.3 - это 14:18:00

Здесь речь идет об удобстве для пользователя. Не считаете же Вы, что пользователь будет высчитывать десятые и сотые доли часа, чтобы указать время 14:54:34?

Georgiy Merts
9191
Georgiy Merts  
Ihor Herasko:

Здесь речь идет об удобстве для пользователя. Не считаете же Вы, что пользователь будет высчитывать десятые и сотые доли часа, чтобы указать время 14:54:34?

Да, не подумал.

Я смотрю с точки зрения трейдера-программиста.

В таком случае, счиотаю, что новый тип не нужен, нужен просто контрол, который позволяет вводить только именно время с минутами и секундами.
Aleksey Vyazmikin
15953
Aleksey Vyazmikin  
Vladimir Karputov:

Часто во входных параметрах нужно задать именно время.

  • через string: неудобно (пользователь может ввести черти что), невозможно оптимизировать в тестере
  • использовать для часов и минут свои enum - (пользователь уже не сможет ввести черти что) - не очень удобно оптимизировать (нельзя вводить шаг) и нужно  два input параметра - один для часом, второй для минут
  • указывать часы и минуты через int - снова таки пользователь может ввести чёрт что и нужно два параметра.

А если был тип данных time, то входные параметеры выглядели бы так:


И как Вы предлагаете оптимизировать, какой шаг ставить?

Если нужен набор дат, то enum, если произвольная точна дата, то string, а если нужна оптимизация, то int. Разбиение даты с помощью int даёт возможность получать статистику вполне адекватную внутри временного отрезка.

Может я просто не понимаю, зачем оптимизировать время в указанном формате - опишите пример, когда это может быть удобней, чем использование int.

Alexey Volchanskiy
27275
Alexey Volchanskiy  
Georgiy Merts:

Когда мне однажды был нужен тип времени - я использовал прямое преобразование long -> datetime.

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

А вобще говоря, надо бы определиться, для чего нам нужно значение времени. По моему опыту - практически всегда нужен просто определенный момент в течении суток. И для этого я использую обычный int (если нужны целые часы), либо double - если нужны часы с минутами. Скажем, 14.3 - это 14:18:00

Угу, и ты хочешь, чтобы тупой юзер это пересчитывал???

zemo
477
zemo  

I agree, will be very useful to have a input specific for time...

another two thinks that are really missing a lot in MT5 
- a option to change the chart to logarithm scale...  
- the RENKO Native in the chart...

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий