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

 

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

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

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


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

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

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

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

 
Georgiy Merts:

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

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

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

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

 
Ihor Herasko:

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

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

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

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

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

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

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


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

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

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

 
Georgiy Merts:

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

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

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

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

 

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...

Причина обращения: