|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.07.2016, 18:44 | #1 |
Пользователь
Регистрация: 09.11.2012
Сообщений: 20
|
Нужен алгоритм по сортировки времени!
Строю график свечей на MC, имею постоянный поток значении привязанных к времени.
Типа 1.2 2016 06 12 17:02:01 1.1 2016 06 12 17:03:01 1.4 2016 06 12 17:05:01 1.4 2016 06 12 17:06:01 1.0 2016 06 12 17:07:01 1.1 2016 06 12 17:08:01 1.5 2016 06 12 17:05:01 Как имея значение времени (в формате DataTime), понять к какому интервалу оно принадлежит. К примеру, если нужен получить значение интервал в приделах 5ти минутка, то значение с 1 по 2 (возвращает 17:00:00), а значения с 3 по последнюю, должно возвращать 17:05:00. Интервал можно задавать и другой не 5ти минутный, а к примеру часовой или полу часовой. |
11.07.2016, 22:55 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
простите, а в чём, собственно, проблема?
получаете минуты (minutes) для определения интервала просто делите на 5 (целочисленно) получили 0 - значит интервал от 0 (включительно) до 5 минут (не включительно) получили 1 - значит интервал от 5 (включительно) до 10 минут (не включительно) получили 2 - значит интервал от 10 (включительно) до 15 минут (не включительно) ... получили 11 - значит интервал от 55 (включительно) до 60 минут (не включительно) или я не правильно понял задачу? |
11.07.2016, 23:51 | #3 |
Пользователь
Регистрация: 09.11.2012
Сообщений: 20
|
Можно конечно 5*(0+1) = 5, 5*(1+1) = 10 ... если это только 5мин. было.
Но задача немного посложнее, интервал может быть от 1 минуты до дня. 1м 5м 10м 15м 30м 60м 120м 1день Здесь наверное нужно всё в секунды переводить (хотя не хочется stamp использовать), а потом рассчитывать (вопрос как), хотя повторюсь время в формате DateTime, может есть более проще вариант. Последний раз редактировалось RomanSSS; 12.07.2016 в 00:25. |
12.07.2016, 00:25 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну и в чем проблема?
у вас все это как-то хранится, или DateTime или TimeSpan, с ними отлично можно работать. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
12.07.2016, 03:51 | #5 |
Пользователь
Регистрация: 09.11.2012
Сообщений: 20
|
Нет просто идут потоком тики с DateTime, как я указал выше описал.
а мне нужно имея интервал, проверять к какому времени он принадлежит. по идее, нужно как-то так и всё таки интервал в секундах ставить х = 300; 5 минут. или на крайней случай TimeSpan - вопрос упирается в алгоритм! function(DateTime(2016 06 12 17:02:01),x) вывод: 2016 06 12 17:00:00 function(DateTime(2016 06 12 17:33:01),x) вывод: 2016 06 12 17:30:00 или х = 600; 10 мин. function(DateTime(2016 06 12 17:02:01),x) вывод: 2016 06 12 17:00:00 function(DateTime(2016 06 12 17:37:01),x) вывод: 2016 06 12 17:30:00 или х = 3600; 1 час. function(DateTime(2016 06 12 16:14:01),x) вывод: 2016 06 12 16:00:00 function(DateTime(2016 06 12 17:37:01),x) вывод: 2016 06 12 17:00:00 Что-то в этом роде! Последний раз редактировалось RomanSSS; 12.07.2016 в 03:56. |
12.07.2016, 07:58 | #6 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Хотите по тикам самостоятельно формировать свечи любого таймфрейма??
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
12.07.2016, 10:14 | #7 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
По сути нужно просто округлять результат с заданной точностью! Если никто раньше Вам не поможет, то я постараюсь сегодня ближе к вечеру набросать рабочий примерчик. Цитата:
|
||
12.07.2016, 10:15 | #8 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
время можно сравнивать и вычислять!!!
то что вы пытаетесь получить есть "округление" времени до нужной границы (5 мин. =300 сек.) .... причем округление строго в меньшую сторону. можно пойти путем декодирования 1.получить отдельно часы минуты секунды 2. округлить каждОЕ из полученных значений до нужного Код:
Вар2. 1.получить ИНТЕРВАЛ от начала часа/начала дня/... в секундах. (любая фиксированная величина ЗАВЕДОМО попадающая НА границу требуемого округления!!!) 2.получить ОСТАТОК деления интервала на ВЕЛИЧИНУ округления 3.ВЫЧЕСТЬ количество секунд остатокА(п.2) из указанного времени.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 12.07.2016 в 10:22. |
12.07.2016, 17:27 | #9 |
Пользователь
Регистрация: 09.11.2012
Сообщений: 20
|
evg_m, как то сложновато ничего не понял. А формулой или кодом можете пояснить, мне кажется там простая математика с манипуляцией DataTime или секундами или форматом типа 20160606123456, не знаю что красивей будет.
|
12.07.2016, 18:01 | #10 |
Пользователь
Регистрация: 09.11.2012
Сообщений: 20
|
Serge_Bliznykov, бар, свечи это один из элементов графика.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Анализ времени выполнения процедуры пирамидальной сортировки | StahisT | Общие вопросы C/C++ | 0 | 30.04.2015 12:58 |
Алгоритм сортировки. | EasyMak | Помощь студентам | 4 | 16.04.2015 16:23 |
Алгоритм сортировки на Си | Mariolka | Помощь студентам | 0 | 10.05.2013 20:12 |
Алгоритм сортировки | freshcot | Помощь студентам | 0 | 16.06.2012 21:10 |
Алгоритм сортировки | BarsRus | Помощь студентам | 3 | 03.06.2010 16:11 |