Jump to content

Search the Community

Showing results for tags 'даты'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Development
    • HTML Coding
    • JavaScript
    • PHP
    • CMS
    • Database
    • Web Server
    • Web-site Development
    • Internet Marketing, SEO
  • Library
    • Tricks and solutions
    • Books
  • Commercial services
    • Freelance
    • Job
    • Goods and Services
  • Our Forum
    • Flame
    • Contests
    • Feedback and Ideas

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web site


Telegram


Signal


Viber


Skype


From


Interests

Found 1 result

  1. Диаграмма Ганта - продолжить разработку. Описание текущего кода и его работу можете увидеть в задании. Сам код - в http://jsfiddle.net/PWvL5/ Стоимость: 1500 руб. за проект. Описание работы скрипта. Работает в общем-то банально. В общем используются три вида функций: 1) функция для определения числа дней в месяце getDaysinMonth(). 2) функция для определения начала предыдущего/последующего периода prevNextPeriod(). (аргументы дата, для которой нужно определить предыдущий период, dir – направление (предыдущий или последующий), значения prev, prev+, next, next+. Разница с плюсом в том, что если дата, для которой нужно определить предыдущий период, итак является началом периода, то при prev она же и возвращается, а при prev+ возвращается дата периода, идущего перед этим периодом. То же самое с next и next+). 3) функция для определения формата вывода названия периода (формат вывода даты) – getUnit(). Они иногда присутствуют в нескольких модификациях (отдельно для дней недели, отдельно для месяцев и т.д.). Есть 10 шкал (1 шкала это объект) в массиве. Каждая шкала состоит из двух кусков: мелкие деления (mainUnit) и крупные деления (unit). Т.е. в одном крупном делении несколько мелких. Ну и помимо этого навешано несколько методов: (prevNextPeriod() – отдельно для мелких и крупных делений, getUnit()– отдельно для мелких и крупных делений) и т.п. Также есть полезное свойство/метод unitLength – для мелких делений оно содержит примитив – ширину для их отображения на экране в px. А для крупных делений это метод, который возвращает расчётную ширину в px для их отражения на экране (а сделать это пришлось из-за того, что у месяцев разная длина). Ну а дальше нарисовать любую шкалу (<table><td>) не проблема: берём заданную дату начала шкалы, вставляем <td>, затем берём с помощью prevNextPeriod следующий период и снова рисуем <td>, пока следующий период не станет больше заданной даты окончания шкалы. (код длиной в пять строчек) Ну и осталось добавить в масштабе выбранной шкалы задачи - activities (есть дата начала и дата конца задачи). Вычисляю разницу в милисекундах от заданного начала шкалы до даты начала задачи, затем, зная отображаемую ширину мелких делений, посредством деления, перевожу дату начала в координату left задачи в масштабе данной шкалы. Тоже самое с датой конца задачи. Добавляю задачу. (код длиной в 8 строчек) Чего хочу: 0) я в коде поизлишествовал (не сразу у меня сложилось такое мнение и есть лишние кусочки), буду рад если его перепишете короче и нагляднее и правильнее (тут цена по договорённости) 1) сделайте модификацию prevNextPeriod() для квартала, полугодия, года и подключите к соответствующим объектам шкалы (времени Вам на это потребуется 30-60 минут с отладкой). 1,5) среднюю горизонтальную border между шкалой крупных и мелких делений уберите (см. скришоты) 1,7) сделайте, чтобы не по двойному клику переключались шкалы, а по ctrl+колёсико мыши вверх/вниз. 2) ниже сетки добавить столбцы, обозначающие рабочее время (оно берётся из функции– смотри пункт 5 ниже и получается округлением до ближайшего периода) - С 9 до 18-00, С 13-00 до 14-00 перерыв на обед. В предпраздничные дни – до 17-00. СКРИНШОТЫ ПРИЛОЖЕНЫ (0-3 – для шкал 0-3 соответственно, а далее серые столбцы не рисуются у всех шкал далее будет просто белое поле – смотри скриншот 4). 3) дату старта диаграммы и дату окончания диаграммы устанавливать автоматически, исходя из списка задач (от начала самой ранней задачи, до конца самой поздней задачи); (15-30 минут) 4) высоту задач и отступов (кстати, это класс .gantChartBar) между ними сделать в виде переменной; (5-10 минут) 5) сделать функцию для определения по дате: рабочий день, предпраздничный или выходной/праздничный. Ну и для выдачи расписания рабочего времени по дате, выдача в виде массива – что то вроде: индекс 0 значение 9-13-00, индекс 1 значение 14-00-18-00. 6) ну и наконец, сделать так, чтобы дата конца задачи считалась с использованием функции с -аргументами: дата начала, длительность задачи – на выходе получаем дату окончания. При этом: - Если длительность задана в днях, часах, минутах – считаются только рабочие дни, часы, минуты (см. п.5 функция определения рабочего времени). - Если длительность задана в месяцах, кварталах, полугодиях, годах – календарное время используется. 7) Ну и всё это описать – ещё подробнее, чем я здесь описал + комментариев поболее чем я в коде сделал. Это ещё не всё – остальное – за отдельную оплату. Разумеется, права на разработку и код принадлежат мне ).
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy