mysql设置值班表_简单的员工轮换值班表
按周循环排班, 员工人数及每日值班人数可自定义.
class Schedule {
public $dayNumArr; // 每周中各天的值班人数,从周日(索引为0)到周六(索引为6)为一个循环周
public $employeeCount; // 定义员工人数
private $currEmployeeNum = 1; // 当前员工编号
/**
*
* @param unknown $employeeCount
* @param unknown $dayNumArr
* 每周各天所需人数的数组
*/
function __construct($employeeCount, $dayNumArr) {
$this->employeeCount = $employeeCount;
$this->dayNumArr = $dayNumArr;
}
/**
* 获得当天值班的员工名单
* @param unknown $day 星期
*/
function getEmployees($day) {
$result = "";
for($i = 1; $i <= $this->dayNumArr [$day]; $i ++) {
$result = $result . " ; " . $this->getAEmloyee ();
}
return $result;
}
/**
* 从员工队列里\数据库中取出一个
* @return string
*/
function getAEmloyee() {
if ($this->currEmployeeNum > $this->employeeCount) {
$this->currEmployeeNum = 1;
}
$result = "员工" . $this->currEmployeeNum;
$this->currEmployeeNum ++;
return $result;
}
/**
* 生成某月值班表
* @param unknown $month
* @param number $year
* @return string
*/
function monthChange($month, $year = 2014) {
// 某月的天数
$days = cal_days_in_month ( CAL_GREGORIAN, $month, $year );
// 一周中的一天,初始化为当月第一天的星期起始数
$aWeekDay = intval ( date ( "w", strtotime ( date ( "Y-n-1" ) ) ) );
$schedule = "";
for($i = 1; $i <= $days; $i ++) {
if ($aWeekDay == 6) {
$aWeekDay = 0;
} else {
$aWeekDay ++;
}
$employee = $this->getEmployees ( $aWeekDay );
$str = sprintf("%d-%s-%d(星期%s),值班员工:%s", $year, $month, $i, $this->weekFormat ($aWeekDay), $employee);
$schedule = $schedule . "\n" . $str;
}
return $schedule;
}
/**
* 把0-6装换为星期的日-六
* @param unknown $index
* @return string
*/
function weekFormat($index) {
switch ($index) {
case 0 :
$xingqi = "日";
break;
case 1 :
$xingqi = "一";
break;
case 2 :
$xingqi = "二";
break;
case 3 :
$xingqi = "三";
break;
case 4 :
$xingqi = "四";
break;
case 5 :
$xingqi = "五";
break;
case 6 :
$xingqi = "六";
break;
default :
echo "获取不到星期,有错误!";
}
return $xingqi;
}
}
运行实例:
$weekArr = array (
0 => 0,
1 => 1,
2 => 1,
3 => 1,
4 => 1,
5 => 1,
6 => 2
);
$employeeCount = 13;
$currEmployee = 1; // 从第1个员工开始
$s = new Schedule ( 13, $weekArr );
echo $s->monthChange ( 11, 2014 );
排班结果:
2014-11-1(星期日),值班员工:
2014-11-2(星期一),值班员工: ; 员工1
2014-11-3(星期二),值班员工: ; 员工2
2014-11-4(星期三),值班员工: ; 员工3
2014-11-5(星期四),值班员工: ; 员工4
2014-11-6(星期五),值班员工: ; 员工5
2014-11-7(星期六),值班员工: ; 员工6 ; 员工7
2014-11-8(星期日),值班员工:
2014-11-9(星期一),值班员工: ; 员工8
。。。
mysql设置值班表_简单的员工轮换值班表相关推荐
- excel合并多个工作表_简单快速多个Excel表合并成一个Excel表
在工作中经常遇到需要把多个电子表合成一个电子表的情况,比如回收的多份调查表格,多个班级成绩合成全校成绩等问题.用传统的方法复制.粘贴耗时费力,还容易出错. 这些表格的特点是每个表格结构一致,需要按一定 ...
- mysql员工管理系统_简单的员工管理系统(Mysql+jdbc+Servlet+JSP)
java java8 java开发 简单的员工管理系统(Mysql+jdbc+Servlet+JSP) 员工管理系统 因为学业要求,需要完成一个过关检测,但是因为检测之前没有做好准备,且想到之前用my ...
- mysql设置索引长度_修改Mysql索引长度限制
mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...
- mysql账目表_数据库1(数据库、表及表数据、SQL语句)
01数据库概念 A: 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来, 用户可以对数据库中的数据进行增加,修改,删除及查询操作. B: 什么是数据库管理 ...
- mysql为什么要分库_我们为什么要分库分表
当一张表的数据达到几千万时,查询一次所花的时间会变长.这时候,如果有联合查询的话,可能会卡死在那儿,甚至把系统给拖垮. 而分库分表的目的就在于此:减小数据库的负担,提高数据库的效率,缩短查询时间.另外 ...
- mysql设置success信息_【原创】MySQL Cluster安装部署(Success)
参考:http://www.cnblogs.com/zhoulf/archive/2013/01/30/2883207.html 安装要求 安装环境:centos6.3(X64) 软件名称 :mysq ...
- mysql 设置数据库只读_如何设置mysql数据库为只读
直奔主题,mysql设置为只读后,无法增删改. 设置命令: mysql>set global read_only=1; #1是只读,0是读写 mysql> show global v ...
- mysql 备份数据库结账_简单的结账功能(可用于各种结账)
只要消费就要进行结账,自己写的结账功能. 这个也是要连接数据进行修改的,比如购买了东西,写入了数据库,结账结束后,自然要把数据库进行清空,将结账的钱写入数据库,进行保存. 和上一个随笔相连,同样做一个 ...
- mysql语句创建学生表_用sql语句创建学生表的方法是什么
用sql语句创建学生表的方法是什么 发布时间:2020-08-25 11:53:33 来源:亿速云 阅读:123 作者:小新 小编给大家分享一下用sql语句创建学生表的方法是什么,希望大家阅读完这篇文 ...
最新文章
- 1.11 多异常捕获
- Codeforces 1323 div2题解ABC
- 计算机标准符合,计算机专利申请要符合哪些标准
- Codeforces Round #604 (Div. 2) E. Beautiful Mirrors 期望dp
- C代码的运行速度总是比Java快,对吧? 错误!
- ASP.NET常用代码
- 混沌思维模型实战课:如何发现击穿破局点的单一要素?
- PLSQL_数据泵导入导出数据Impdp/ Expdp(概念)
- linux 做磁盘配额
- mysql group by cube_group by、grouping sets、with rollup、with cube方法
- 推荐几款好用的MySQL开源客户端,建议收藏
- 聊聊量子计算机那些事
- excel教程自学网_企业Office办公软件自学视频教程word/excel/ppt 2003 2013 2016全套
- vue-pdf查看pdf文件及打印乱码问题处理
- 计算机网络 之 局域网
- 【Android面试题】准备、hr面试问题总结
- Verilog 实现千兆网UDP协议 基于88E1111--板级验证--增加ARP
- 新生活、新成长、新认知
- 移动软件开发-设计app首页
- windows 下安装软件乱码