如何用java实现人员自动排班的问题

假设现有a,b,c,d,e,f,g人员要求在当月自动轮替值班,规则是礼拜一至礼拜五的时候在人员中自动轮替,而周六、周日则再回到此列表中轮替如:--------------... 假设现有a,b,c,d,e,f,g人员

要求在当月自动轮替值班,规则是礼拜一至礼拜五的时候在人员中自动轮替,而周六、周日则再回到此列表中轮替
如:
-------------------------
假设3月1号-3月5号为周一到周五,则是a,b,c,d,e五人值班

假设3月6号、3月7号为周六、周日,则是a,b两人值班

3月8号-3月12号为f,g,a,b,c五人值班

3月13号、3月14号则为c,d两人值班
-------------------------

以此类推

请问应该如何实现,谢谢
展开
 我来答
paccer
推荐于2018-04-10 · TA获得超过920个赞
知道小有建树答主
回答量:1617
采纳率:100%
帮助的人:1373万
展开全部
应该用不上什么线程,一次性把所有的班都排好

六个元素的数组
两个指针,一个是工作日当值人,一个是周末当值人,初始都是0

从今天开始到指定某一天,譬如年底
int idx_workday =0;
int idx_weekend =0;
ArrayList assignment = new ArrayList();
day = today;
while(day不是年底){
int i;
if (day is workday){
i = idx_workday++;
assignment.add(i);
if (idx_workday >5) idx_workday = 0;
}else{
i = idx_weekend++;
assignment.add(i);
if (idx_weekend >5) idx_weekend= 0;
}
}
output assignment
百度网友ac7b053
2007-03-30 · TA获得超过340个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:151万
展开全部
这个很简单。我给你一个算法
1 将五个人都对应于一个常量。就是你说的1,2,3,4,5。
2 调用一个线程,在RUN 方法里循环比较当前日期是否是对应的那个人。
3 循环变量>5则重新置零。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
23400262
2007-04-01 · TA获得超过312个赞
知道答主
回答量:222
采纳率:0%
帮助的人:0
展开全部
其实是周末跟平时不同,分开排对吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式