Skip to content

Attendance parser and calculator based on text input

License

Notifications You must be signed in to change notification settings

aminebenhariz/Attendance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a77b3b3 · Apr 14, 2016

History

81 Commits
Mar 29, 2016
Mar 29, 2016
Dec 16, 2015
Dec 14, 2015
Mar 24, 2016
Mar 24, 2016
Mar 24, 2016
Mar 29, 2016
Dec 12, 2015
Mar 29, 2016
Apr 14, 2016
Mar 24, 2016

Repository files navigation

Attendance

Build Status Code Coverage Scrutinizer Code Quality

SensioLabsInsight

Table of Contents

Install

Via Composer

$ composer require aminebenhariz/attendance

DayAttendanceLine Format

2015-12-12|08:30 (10:00-10:30) (16:00-16:30) 17:30

 - 2015-12-12    : date (yyyy-mm-dd)
 - 08:30         : arrival time (hh:mm)
 - (10:00-10:30) : pause from 10:00 to 10:30
 - (16:00-16:30) : pause from 16:00 to 16:30
 - 17:30         : departure time (hh:mm)

Description can be added like this

2015-12-12|08:30 (10:00-10:30) (16:00-16:30) 17:30|Some Description

Usage

Calculate attendance

$dayAttendanceLine = '2015-12-12|08:30 (10:00-10:30) (16:00-16:30) 17:30';
$dayAttendance = DayAttendance::parseDayAttendanceLine($dayAttendanceLine);

echo $dayAttendance->getDuration()->format('%H:%I:%S');
// 07:30:00

echo $dayAttendance->exportLine();
// 2015-12-12|08:30 (10:00-10:15) (12:30-13:30) (16:00-16:15) 17:30

Calculate average attendance of multiple days

$day1 = DayAttendance::parseDayAttendanceLine('2015-12-14|08:31 (12:02-13:42) 17:25');
$day2 = DayAttendance::parseDayAttendanceLine('2015-12-15|08:29 (12:21-13:32) (16:12-16:22) 17:24');
$day3 = DayAttendance::parseDayAttendanceLine('2015-12-16|08:52 (12:18-13:12) 17:31');
$day4 = DayAttendance::parseDayAttendanceLine('2015-12-17|08:12 (12:21-13:52) 17:24');
$day5 = DayAttendance::parseDayAttendanceLine('2015-12-18|08:35 (12:24-13:25) 17:42');

$attendance = new Attendance([$day1, $day2, $day3, $day4, $day5]);

echo $attendance->getAverage()->format('%H:%I');
// 07:40

Requirements

The following versions of PHP are supported by this version.

  • PHP 5.4
  • PHP 5.5
  • PHP 5.6
  • PHP 7.0
  • HHVM

Testing

$ composer test

About

Attendance parser and calculator based on text input

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages