|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.10.2014, 17:05 | #1 |
Регистрация: 29.09.2014
Сообщений: 5
|
Подсчёт времени по таймлайну
Доброго времени суток.
Ломаю голову довольно давно. Значит исходные данные: имеется лист Excel в котором порядка 17 строк (= некие процессы), расписанных по датам. Соответственно дата начала и окончания (которые вводятся пользователями данной таблицы). По этим датам я вычисляю длительность процесса. По этой таблице была сделана диаграмма, так называемый Timeline (фото прилагается). В чем состоит задача: необходимо подсчитать суммарную длительность данных процессов. В чем проблема: нужно учитывать, что процессы которые протекают одновременно не должны суммироваться 2 раза (т.е. накладывающиеся по датам проведения процессы не суммируются, а общая часть берется только единожды) и пустое время (так где не было в активной фазе ни одного процесса) не должно входить в эту сумму. Голову ломаю уже полдня. Идей было много, но постепенно при написании программы, понимал, что такое решение не исключает ошибок, либо я не представляю как его реализовать. Так вот прошу помощи, уважаемые программисты. Буду рад любому подспорью и подсказкам. Спасибо. P.S. Ячейки с датами форматированы как даты, но естественно, что считываются как числа, типа 41564 например. Наверняка описал не всю ситуацию, спрашивайте - в моих интересах ответить. Последний раз редактировалось MaZlobin; 23.10.2014 в 17:08. |
25.10.2014, 03:37 | #2 | ||
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
Цитата:
Распознаём. Загружаем в какой-то пикчурбокс. Попиксельно считываем и пытаемя выделить ряды диаграммы. По координатам рядов пытаемся как-то привязать ко времени. Если получится - считаем Цитата:
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru |
||
27.10.2014, 17:11 | #3 |
Форумчанин
Регистрация: 11.10.2010
Сообщений: 134
|
А нельзя ли сам документ эксель увидеть, а то так как-то не понятно.
|
27.10.2014, 17:42 | #4 |
Регистрация: 29.09.2014
Сообщений: 5
|
Ребят, у меня пока идея появилась. Если не получится - отпишусь.
Спасибо, что отозвались. |
27.10.2014, 18:38 | #5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
однозначно диаграмма построена по табличным данным - вот их и надо обрабатывать, а не изображение.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
29.10.2014, 01:40 | #6 |
Регистрация: 29.09.2014
Сообщений: 5
|
Это абсолютно верно! Не графические данные, а данные Excel.
|
30.10.2014, 14:36 | #7 |
Форумчанин
Регистрация: 11.10.2010
Сообщений: 134
|
Я думаю, никто не понял, что именно вы хотите. Данные покажите.
|
01.11.2014, 23:29 | #8 |
Регистрация: 29.09.2014
Сообщений: 5
|
Спасибо, что отозвались!
Вроде "догнал" наконец и написал (программка не сложная получается). Если кому интересно - есть 3 столбца и куча строк в Excel документе. В первом столбце - название процесса, второй и третий - даты начала и окончания процесса соответственно. Так вот, нужно было найти суммарную длительность всех этих процессов. Казалось бы - банально вычесть из даты начала дату конца, а потом проссумировать все длительности процессов. Но (и вот зачем я кидал диаграмму в первом посте) не тут то было - тогда программа посчитает длительность всех процессов даже ЕСЛИ ОНИ ШЛИ ОДНОВРЕМЕННО. А нужно найти было только их длительность, т.е. во времени. Если например взять и из даты окончания самого позднего процесса вычесть дату начала самого раннего? То же вроде правильно, но ведь процессы необязательно идут строго друг за другом (т.е. окончание предыдущего не является началом следующего). Т.е. если существуют пробелы между процессами (ни один не выполнялся в это время), то такой метод их всё равно учтёт, а эти пробелы не нужно было учитывать. В общем, решил задачу так (не судите строго, наверное "в лоб", зато работает). Записываю в массив (естественно динамический) все дни (даты) когда длился процесс (например если процесс имел место быть 1.09.2010-3.09.2010, то в массив запишется 1.09.2014 2.09.2014 3.09.2014). И так с каждым процессом, все даты в один массив друг за другом. Затем функция превращает мой массив в "уникальный", т.е. чтобы не совпадало ни одной даты (не было повторяющихся дат). Получается, что длина (количество данных) в таком массиве и есть нужное мне значение дней, в течение которых выполнялись данные процессы. Вот как-то так. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод времени и выходного дня вместо времени | Mikesh | PHP | 2 | 31.01.2014 00:22 |
WinAPI синхронизация времени с сайтом точного времени. | Walker32 | Помощь студентам | 4 | 07.06.2012 18:59 |
Подсчёт времени при хэшировании текста | Madragon | Помощь студентам | 1 | 07.06.2011 14:57 |
Подсчёт кредит | revaldo666 | Общие вопросы C/C++ | 5 | 10.01.2011 13:37 |
Delphi подсчёт затраченного времени | АлексаШка | Помощь студентам | 6 | 09.06.2010 08:51 |