dev-main 2024-06-08 14:12 UTC

This package is auto-updated.

Last update: 2024-09-08 14:45:59 UTC


README

DaysOff 库是一个 PHP 包,提供与计算节假日、周末和工作日相关的功能。它提供方法来确定给定日期是否为节假日、周末或工作日,以及根据工作日计算日期,还可以返回给定日期之间的特定日期。

安装

您可以通过 Composer 安装此库

composer require olszewskimaciej/daysoff:dev-main

用法

以下是如何使用它的示例

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 '<b>getCalendarDaysFromDatePlusWorkingDays</b>: ';
print_r($daysOff->getCalendarDaysFromDatePlusWorkingDays($fromDate, $daysToAdd));

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

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

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

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

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

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

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

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

用例

DaysOff 库在以下场景中可能很有用:

  • 任务调度:确定任务或事件的业务日。
  • 交货日期计算:根据工作日计算交货日期。
  • 资源分配:考虑节假日和周末进行资源分配。
  • 休假管理:根据工作日管理员工休假申请。

DaysOff 库

DaysOff 是一个 PHP 库,提供与计算节假日、周末和工 作日相关的功能。它提供方法来确定给定日期是否为节假日、周末或工作日,以及根据工作日计算日期,还可以返回给定日期之间的特定日期。

安装

您可以通过 Composer 安装此库

composer require olszewskimaciej/daysoff:dev-main

用法

以下是如何使用它的示例

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 '<b>getCalendarDaysFromDatePlusWorkingDays</b>: ';
print_r($daysOff->getCalendarDaysFromDatePlusWorkingDays($fromDate, $daysToAdd));

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

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

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

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

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

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

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

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

用例

DaysOff 库在以下场景中可能很有用:

  • 任务调度:确定任务或事件的业务日。
  • 交货日期计算:根据工作日计算交货日期。
  • 资源分配:考虑节假日和周末进行资源分配。
  • 休假管理:根据工作日管理员工休假申请。