webtoucher/calendar

Library for advanced operations with calendar days.

1.1.2 2016-05-05 11:55 UTC

This package is auto-updated.

Last update: 2024-12-14 21:59:31 UTC


README

This library helps to calculate date difference considering holidays.

Latest Stable Version Total Downloads Daily Downloads Latest Unstable Version License

Installation

The preferred way to install this extension is through composer.

Either run

$ php composer.phar require webtoucher/calendar "*"

or add

"webtoucher/calendar": "*"

to the require section of your composer.json file.

Usage

Create calendar for your country:

$calendar = new Calendar(new Schedule('ru'));

Also you can use your external rules. Just create directory with your rules - e.x. 2016.json or default.json. Default rules will be used when rules for the year not exists. Use directory fullpath to init schedule.

$calendar = new Calendar(new Schedule('/var/www/my-site/rules/pl'));

Calculate number of working days with one of follow ways:

echo $calendar->calendarToWorkingDays(new \DateTime('2016-02-24'), new \DateTime('2016-02-29')); // 3
echo $calendar->calendarToWorkingDays(new \DateTime('2016-02-29'), new \DateTime('2016-02-24')); // -3
echo $calendar->calendarToWorkingDays(new \DateTime('2016-02-24'), 5); // 3
echo $calendar->calendarToWorkingDays(new \DateTime('2016-02-29'), -5); // -3

Calculate number of calendar days by working days with one of follow ways:

echo $calendar->workingToCalendarDays(new \DateTime('2016-02-24'), 3); // 5
echo $calendar->workingToCalendarDays(new \DateTime('2016-02-29'), -3); // -5

Additional information

You can help the project by adding rules for another countries. Send me your pull requests. But please use the same formating for json files.