code16/carbon-business-days

A simple class for business days counting

v1.1.0 2024-04-03 09:56 UTC

This package is auto-updated.

Last update: 2024-11-03 11:14:32 UTC


README

This package aims to count business working days between two Carbon dates.

Usage

$date = new BusinessDays();
    
// Set holidays (2018-1-1 is a Monday)
$date->addHoliday(Carbon::createFromDate(2018, 1, 1));
    
// Should return 9
$days = $date->daysBetween(
    Carbon::createFromDate(2018, 1, 1),
    Carbon::createFromDate(2018, 1, 15)
);
    
// Set a closed period (whole 2nd week)
$date->addClosedPeriod(
    Carbon::createFromDate(2018, 1, 8),
    Carbon::createFromDate(2018, 1, 12)
);

// Should return 5
$days = $date->daysBetween(
    Carbon::createFromDate(2018, 1, 1),
    Carbon::createFromDate(2018, 1, 15)
);

Default for weekend days are saturdays and sundays, but it can be configured:

$date->setWeekendDays([Carbon::SUNDAY, Carbon::MONDAY]);

You can also add or subtract days from a given date:

$newDate = $date->addDaysTo(
    Carbon::createFromDate(2018, 5, 14), 
    10
);
$newDate = $date->subDaysFrom(
    Carbon::createFromDate(2018, 5, 14), 
    10
);

Installation

composer require code16/carbon-business-days

License

MIT