Skip to content

FlintersVN/working-hours

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Installation

composer require flinters-php/working-hours

Usage

Time

use Flinters\WorkingHours\Time;

// Init from string
$time = Time::fromString('10:30');

// Init from Int (630 = 10 * 60 + 30) -> 10:30
$time = Time::fromInt(630);

// Init from hour & time
$time = new Time(10, 30);

Range

use Flinters\WorkingHours\Range;
use Flinters\WorkingHours\Time;

// Init from String
$range = Range::fromString('08:30-17:30');

// Init by constructor
$range = new Range(
    Time::fromString('08:30'),
    Time::fromString('17:30') 
);

// This statement will create a range from -> 08:30-10:30
$range = Range::duration(Time::fromString('08:30'), $duration = 120);

$range->contains(Time::fromString('10:30')); // true
$range->contains(Time::fromString('05:30')); // false

$range->containsRange(Range::fromString('08:30-10:30')); // true
$range->containsRange(Range::fromString('18:30-20:30')); // false

// Range: 08:30-17:30
// [08:30-11:30, 13:30-17:30]
$range->break(Range::fromString('11:30-13:30'));

$range->toString(); // 08:30-17:30

Working Hours

use Flinters\WorkingHours\Time;
use Flinters\WorkingHours\Range;
use Flinters\WorkingHours\WorkingHours;

$dayOff = WorkingHours::dayOff();
$dayOff->isFree(Range::fromString('10:30-12:00')); // false

// Set busy time 
$workingDay = WorkingHours::working(Range::fromString('08:30-17:30'));
$workingDay->busy(Range::fromString('10:30-12:30'));
$workingDay->busyDuration(Time::fromString('10:30'), 30);

$workingDay->isFree(Range::fromString('08:30-10:30')); // true
$workingDay->isFree(Range::fromString('11:00-12:00')); // false
$workingDay->isFree(Range::fromString('18:00-20:00')); // false

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages