aminebenhariz/attendance

基于文本输入的考勤解析器和计算器

0.4.1 2016-03-29 15:39 UTC

This package is not auto-updated.

Last update: 2024-09-24 19:14:03 UTC


README

Build Status Code Coverage Scrutinizer Code Quality

SensioLabsInsight

目录

安装

通过 Composer

$ composer require aminebenhariz/attendance

DayAttendanceLine 格式

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)

描述可以添加如下

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

用法

计算考勤

$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

计算多天的平均考勤

$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

要求

此版本支持的 PHP 版本如下。

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

测试

$ composer test