PHPackages                             olszewskimaciej/daysoff - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. olszewskimaciej/daysoff

ActiveLibrary

olszewskimaciej/daysoff
=======================

04PHP

Since Jun 8Pushed 1y ago1 watchersCompare

[ Source](https://github.com/OlszewskiMaciej/DaysOff)[ Packagist](https://packagist.org/packages/olszewskimaciej/daysoff)[ RSS](/packages/olszewskimaciej-daysoff/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

DaysOff library
===============

[](#daysoff-library)

The DaysOff library is a PHP package that provides functionalities related to calculating holidays, weekends, and working days. It offers methods to determine if a given date is a holiday, weekend, or working day, as well as to calculate dates based on working days, can also return specific days between given dates.

Installation
------------

[](#installation)

You can install the library via Composer:

```
composer require olszewskimaciej/daysoff:dev-main
```

Usage
-----

[](#usage)

Here's an example of how to use it:

```
use DaysOff\DaysOff;
use DaysOff\Providers\PolishHolidayProvider;

// Initialize the holiday provider
$holidayProvider = new PolishHolidayProvider();

// Initialize the DaysOff instance
$daysOff = new DaysOff($holidayProvider);

$fromDate = new DateTime('2024-01-01');
$toDate = new DateTime('2024-12-31');
$daysToAdd = 10;

// Add and remove holidays
$daysOff->addHoliday(new DateTime('2025-05-02'), 'Custom Holiday');
$daysOff->removeHoliday(new DateTime('2025-01-06'));

// Calculate calendar days from date + X working days
echo 'getCalendarDaysFromDatePlusWorkingDays: ';
print_r($daysOff->getCalendarDaysFromDatePlusWorkingDays($fromDate, $daysToAdd));

// Calculate date from date + X working days
echo 'getDateFromDatePlusWorkingDays: ';
print_r($daysOff->getDateFromDatePlusWorkingDays($fromDate, $daysToAdd));

// Get holiday name
echo 'getHolidayName: ';
print_r($daysOff->getHolidayName($fromDate));

// Check if a date is a holiday
echo 'isHoliday: ';
var_dump($daysOff->isHoliday($fromDate));

// Count holidays between dates
echo 'countHolidaysBetweenDates: ';
var_dump($daysOff->countHolidaysBetweenDates($fromDate, $toDate));

// Get holidays between dates
echo 'getHolidaysBetweenDates: ';
print_r($daysOff->getHolidaysBetweenDates($fromDate, $toDate));

// Count holidays and weekends from date + X days
echo 'countHolidaysAndWeekendsFromDatePlusDays: ';
var_dump($daysOff->countHolidaysAndWeekendsFromDatePlusDays($fromDate, $daysToAdd));

// Get holidays and weekends from date + X days
echo 'getHolidaysAndWeekendsFromDatePlusDays: ';
print_r($daysOff->getHolidaysAndWeekendsFromDatePlusDays($fromDate, $daysToAdd));

// Count working days from date + X days
echo 'countWorkingDaysFromDatePlusDays: ';
var_dump($daysOff->countWorkingDaysFromDatePlusDays($fromDate, $daysToAdd));
```

Use Cases
---------

[](#use-cases)

The DaysOff library can be useful for various scenarios, including:

- **Task Scheduling**: Determine business days for scheduling tasks or events.
- **Delivery Date Calculation**: Calculate delivery dates based on working days.
- **Resource Allocation**: Allocate resources considering holidays and weekends.
- **Leave Management**: Manage employee leave requests based on working days.

---

Biblioteka DaysOff
==================

[](#biblioteka-daysoff)

DaysOff to biblioteka PHP, która dostarcza funkcje związane z obliczaniem dni świątecznych, weekendów i dni roboczych. Oferuje metody do określania, czy podana data jest świętem, weekendem lub dniem roboczym, a także do obliczania dat na podstawie dni roboczych, potrafi również zwrócić określone dni pomiędzy podanymi datami.

Instalacja
----------

[](#instalacja)

Bibliotekę można zainstalować za pomocą Composera:

```
composer require olszewskimaciej/daysoff:dev-main
```

Użycie
------

[](#użycie)

Oto przykład użycia:

```
use DaysOff\DaysOff;
use DaysOff\Providers\PolishHolidayProvider;

// Inicjalizacja "dostawcy" świąt
$holidayProvider = new PolishHolidayProvider();

// Inicjalizacja biblioteki
$daysOff = new DaysOff($holidayProvider);

$fromDate = new DateTime('2024-01-01');
$toDate = new DateTime('2024-12-31');
$daysToAdd = 10;

// Dodaj, usuń święto
$daysOff->addHoliday(new DateTime('2025-05-02'), 'Custom Holiday');
$daysOff->removeHoliday(new DateTime('2025-01-06'));

// Oblicz liczbę dni kalendarzowych od daty + X dni roboczych
echo 'getCalendarDaysFromDatePlusWorkingDays: ';
print_r($daysOff->getCalendarDaysFromDatePlusWorkingDays($fromDate, $daysToAdd));

// Oblicz datę od daty + X dni roboczych
echo 'getDateFromDatePlusWorkingDays: ';
print_r($daysOff->getDateFromDatePlusWorkingDays($fromDate, $daysToAdd));

// Zwróc nazwę święta
echo 'getHolidayName: ';
print_r($daysOff->getHolidayName($fromDate));

// Sprawdź czy podana data wypada w święto
echo 'isHoliday: ';
var_dump($daysOff->isHoliday($fromDate));

// Policz święta pomiędzy podanymi datami
echo 'countHolidaysBetweenDates: ';
var_dump($daysOff->countHolidaysBetweenDates($fromDate, $toDate));

// Zwróć święta pomiędzy podanymi datami
echo 'getHolidaysBetweenDates: ';
print_r($daysOff->getHolidaysBetweenDates($fromDate, $toDate));

// Policz święta i weekendy od daty + X dni
echo 'countHolidaysAndWeekendsFromDatePlusDays: ';
var_dump($daysOff->countHolidaysAndWeekendsFromDatePlusDays($fromDate, $daysToAdd));

// Zwróc święta i weekendy od daty + X dni
echo 'getHolidaysAndWeekendsFromDatePlusDays: ';
print_r($daysOff->getHolidaysAndWeekendsFromDatePlusDays($fromDate, $daysToAdd));

// Policz dni robocze od daty + X dni
echo 'countWorkingDaysFromDatePlusDays: ';
var_dump($daysOff->countWorkingDaysFromDatePlusDays($fromDate, $daysToAdd));
```

Przykłady użycia
----------------

[](#przykłady-użycia)

Biblioteka DaysOff może być przydatna w różnych scenariuszach, w tym:

- **Planowanie Zadań**: Określanie dni roboczych do planowania zadań lub wydarzeń.
- **Obliczanie Dat Dostawy**: Obliczanie dat dostawy na podstawie dni roboczych.
- **Alokacja Zasobów**: Alokowanie zasobów z uwzględnieniem świąt i weekendów.
- **Zarządzanie Urlopami**: Zarządzanie wnioskami urlopowymi pracowników na podstawie dni roboczych.

---

###  Health Score

14

—

LowBetter than 2% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity18

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a356eba095fd5648dd2de291ac4b371680fb9fea702877d5ef18a0516bb3cb10?d=identicon)[OlszewskiMaciej](/maintainers/OlszewskiMaciej)

---

Top Contributors

[![OlszewskiMaciej](https://avatars.githubusercontent.com/u/57813975?v=4)](https://github.com/OlszewskiMaciej "OlszewskiMaciej (13 commits)")

### Embed Badge

![Health badge](/badges/olszewskimaciej-daysoff/health.svg)

```
[![Health](https://phpackages.com/badges/olszewskimaciej-daysoff/health.svg)](https://phpackages.com/packages/olszewskimaciej-daysoff)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
