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

 
Ihor Herasko:

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

Да было бы неплохо иметь такой вариант. 

Кому надо оптимизировать, то сделать вот так:

Start  Step  End 

14:30:30 00:01:30  18:30:00

 

Я делаю проще.

input int Param_hr = 12;
input int Param_min = 30;
input int Param_sec = 27;
 
Vladimir Karputov:

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

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

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


А чем так не устраивает?

input datetime StartData  = D'2017.12.21 19:05:00'; //Дата начала расчёта индикатора

datetime st_day = D'2017.12.21 00:00:00'; 
ulong my_time = ulong(StartData) - ulong(st_day); 
 
Alexey Volchanskiy:

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

Человек, пишущий экспертов - вполне может справиться с такой задаче.

А про тех, чья цель - впарить лоху Грааль - я, по глупости, забыл.

 
Vladimir Karputov:

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

  • использовать для часов и минут свои enum - (пользователь уже не сможет ввести черти что)

Вот именно поэтому не нужно изобретать лисапеды.

Все варианты конверсии должны быть описаны в функции обработки входа, с выдачей ошибок.

 
Georgiy Merts:

Человек, пишущий экспертов - вполне может справиться с такой задаче.

А про тех, чья цель - впарить лоху Грааль - я, по глупости, забыл.

Жорж, если мы пишем для себя, то да. А как быть с маркетом, фрилансом и теми, кто пишет на заказ? У меня заказчики не поймут, если я их заставлю переводить время в секунды.

Тут надо вопрос ставить шире. Не новый тип данных вводить, а коренным образом менять дубовую систему input переменных.

 
. ... Rick D. ... .:

Я делаю проще.

input int Param_hr = 12;
input int Param_min = 30;
input int Param_sec = 27;

И как оптимизировать? Тут речь идет именно об оптимизации, потому что просто для представления времени достаточно строки.

 
Ihor Herasko:
По большому счету непосредственно новый тип данных не нужен. Нужно лишь дать возможность установки формата даты/времени, подобно тому как это сделано в TimeToString(). 

+1

 
Alexey Volchanskiy:

И как оптимизировать? Тут речь идет именно об оптимизации, потому что просто для представления времени достаточно строки.

Очень просто. Start = 1, Stop = ..., Step = 1
 

зачем вводить новый тип, просто реализовать формат отображения стандартного времени datetime т.к. по умолчанию там у нас идет в обратном порядке YYYY.MM.DD HH:MM:SS 

нужно только для параметров доработать отображение с заданным форматом и для оптимизации доработать.

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

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