java实现四班三运转,每个班按工作四天休一天再工作两天休一天规律进行排班,具体代码示例
时间: 2024-09-26 13:18:36 浏览: 6
在Java中实现四班三运转的排班规则,可以创建一个类`Shift`来表示一个轮班,然后创建一个`Scheduling`类来管理整个调度。下面是一个简单的代码示例:
```java
import java.util.ArrayList;
import java.util.List;
class Shift {
private String className; // 班次名称,比如A、B、C、D
private boolean isWorking; // 当前是否上班
public Shift(String className) {
this.className = className;
this.isWorking = true; // 初始状态为上班
}
public void rotate() {
isWorking = !isWorking; // 切换上班状态
}
public String getClassStatus() {
return isWorking ? "上班" : "休息";
}
}
class Scheduling {
private List<Shift> shifts; // 存储四个班的轮班列表
public Scheduling() {
shifts = new ArrayList<>();
for (char i = 'A'; i <= 'D'; i++) {
shifts.add(new Shift(String.valueOf(i)));
}
}
public void scheduleWork(int day) {
if (day % 7 == 0 || day % 7 == 4) { // 每周一或周六开始新的一轮循环
shifts.forEach(shift -> shift.rotate()); // 轮流切换上班状态
}
System.out.println("第" + day + "天,当前轮班情况:" + shifts.stream()
.map(Shift::getClassStatus).collect(Collectors.joining(", ")));
}
}
public class Main {
public static void main(String[] args) {
Scheduling scheduling = new Scheduling();
for (int i = 1; i <= 10; i++) { // 排班10天
scheduling.scheduleWork(i);
}
}
}
```
在这个例子中,我们首先创建了四个班的Shift对象,并在Scheduling类的`scheduleWork`方法里,根据每天的工作日数调整上班状态。每周一和周六(天数除以7余数为0或4),我们会开始一个新的四天工作两天休息的周期。