编程求助!工作日周末假期都需要分开考虑的值班表排列方法

qq_38342902 2019-12-10 10:26:38
求助各位大佬!现在需要写一个自动排班的程序。
基本情况是这样的:如果是工作日无需考虑直接排班,如果是周末则需考虑上一次值班这个人是不是排得周末如果是就不能排顺延,直到不是周末再排这个人;同理如果是假期则需考虑这个人上一个是不是排的假期,如果是需要顺延,直到不是假期再排这个人。
也就是说工作日无需考虑直接排,但是不能连着两次都值周末也不能连着两次都值假期。
如何实现呢?
...全文
839 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
放风喽 2019-12-10
  • 打赏
  • 举报
回复
一共几个人?周六周日需要几个人上班?工作日需要几个人上班?
放风喽 2019-12-10
  • 打赏
  • 举报
回复
实际情况很复杂
说说思路吧
一年365天,就有365个夜班,52个星期,也就是104个周六,104个周日,408个早中班,再加上假期的早中晚班,全部列出来,每个班赋予一个序号。保守估计780个班。
值班字典{序号:*,日期:**,班次:晚班还是早班还是中班,工作日:工作日还是休息日}
才100个人,有点少啊。
人员字典{姓名:**,性别:**,第一次值班:**,第二次值班:**。。。。。。}
开始:
遍历所有夜班,(也可以设置先安排一个月的值班)
判断夜班是工作日还是休息日
如果是工作日
随机抽取一个男性(筛选值班最少的),将空白的那次值班value设置为值班序号
如果不是工作日
随机抽取值班最少的男性,判断上次值班的工作日类型,如果是工作日,就将空白的班次设置为值班序号
夜班排班结束
遍历其他班次
判断是不是工作日
是工作日
筛选值班最少的,安排上
不是工作日
筛选值班最少,上次值班是工作日的人,安排上
结束
qq_38342902 2019-12-10
  • 打赏
  • 举报
回复
引用 1 楼 天不绝我 的回复:
一共几个人?周六周日需要几个人上班?工作日需要几个人上班?
工作日只需一个人值晚班但必须男生,假期和周末都需三个人值早中晚,晚班也必须是男生,总共有的人数是100多人。所以一年至少会轮到两次。

37,742

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧