webtoucher / calendar
Library for advanced operations with calendar days.
Installs: 2 727
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-11-14 21:47:02 UTC
README
This library helps to calculate date difference considering holidays.
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.