Плагин можно найти на github: http://ift.tt/1KsplY6
Плагин можно установить через bower и npm:
bower install moment-weekday-calc
npm install moment-weekday-calc
Плагин добавляет несколько функций в Moment.js:
- int weekdayCalc — считает сколько «рабочих» дней в заданном диапазоне
- date addWorkdays — находит дату спустя N «рабочих» (пн-пт) дней
- int workdaysToCalendarDays — конвертирует рабочие дни в календарные
- date addWeekdaysFromSet — добавляет дни из заданного множества к заданной дате
- int weekdaysFromSetToCalendarDays — конвертирует дни из заданного множетсва в календартные дни
Каждая из функций доступна с префиксом iso, такие функции используют множество рабочих дней начинающееся с понедельника (1-7), функции без префикса используют американский формат начинающийся с воскресенья (0-6).
Существует множество вариантов вызова этих функций, как с перечнем аргументов, так и с объектом с именованными параметрами, не буду их перечислять, а сразу перейду к примерам.
Использование:
Привожу примеры только для функций с префиксом iso.
Сколько пятниц между 14 и 23 февраля?
moment('14 Feb 2014').isoWeekdayCalc('23 Feb 2014',[5]); //2
(в данном случае начало диапазона берётся из объекта moment, из которого мы вызываем функцию)
Сколько рабочих дней, без учёта праздников в с 1 апреля 2015 года по 31 марта 2016?
moment().isoWeekdayCalc('1 Apr 2015','31 Mar 2016',[1,2,3,4,5]); //262
(здесь объект moment не содержит даты, поэтому начальная дата задаётся в качестве первого аргумента)
А если учесть пару праздников?
moment().isoWeekdayCalc('1 Apr 2015','31 Mar 2016',[1,2,3,4,5],['6 Apr 2015','7 Apr 2015']); //260
Вызов с объектом:
moment().isoWeekdayCalc({
rangeStart: '1 Apr 2015',
rangeEnd: '31 Mar 2016',
weekdays: [1,2,3,4,5],
exclusions: ['6 Apr 2015','7 Apr 2015']
}) //260
Что за дата будет спустя 5 рабочих дней после 2 февраля, если работать без выходных?
moment('2015-02-02').isoAddWeekdaysFromSet(5, [1,2,3,4,5,7]); //2015-02-08
5 рабочих дней после 4 мая, с учётом 9го мая?
moment('2015-05-04').isoAddWeekdaysFromSet({
'workdays': 5,
'weekdays': [1,2,3,4,5,6],
'exclusions': ['2015-05-09']
}); //2015-05-11
11 рабочих дней после 10 октября в календарных днях, рабочие дни — среда-воскресенье:
moment('2015-10-05').isoWeekdaysFromSetToCalendarDays(11, [3,4,5,6,7], ['2015-10-15']) //17
Подробнее в README на гитхабе.
Заранее спасибо за здравую критику. Надеюсь, что плагин будет кому-нибудь полезен.
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий