如何用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两人值班
-------------------------
以此类推
请问应该如何实现,谢谢 展开
要求在当月自动轮替值班,规则是礼拜一至礼拜五的时候在人员中自动轮替,而周六、周日则再回到此列表中轮替
如:
-------------------------
假设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两人值班
-------------------------
以此类推
请问应该如何实现,谢谢 展开
3个回答
展开全部
应该用不上什么线程,一次性把所有的班都排好
六个元素的数组
两个指针,一个是工作日当值人,一个是周末当值人,初始都是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
六个元素的数组
两个指针,一个是工作日当值人,一个是周末当值人,初始都是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
展开全部
这个很简单。我给你一个算法
1 将五个人都对应于一个常量。就是你说的1,2,3,4,5。
2 调用一个线程,在RUN 方法里循环比较当前日期是否是对应的那个人。
3 循环变量>5则重新置零。
1 将五个人都对应于一个常量。就是你说的1,2,3,4,5。
2 调用一个线程,在RUN 方法里循环比较当前日期是否是对应的那个人。
3 循环变量>5则重新置零。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实是周末跟平时不同,分开排对吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询