java shift plan


foreword

A simple shift plan is relatively common. Two shifts in a team are black shifts and white shifts. There are also three shifts, that is, work 12 and rest 24 hours. Similar to this simple shift plan; I have come into contact with it in previous projects, and I remembered it
today Yes, let’s review the shift schedule with a short answer;


1. Shift plan Three shifts

public class BlackWhite {

    /**
     * 三个班组 黑白倒班 工作12 休息24
     *
     * @param args
     */
    public static void main(String[] args) {

        Date date = new Date();// 任意指定一个日期 排全年计划
        System.out.println(DateUtil.year(date) + "年排班计划");
        List<String> banzu = Arrays.asList("A组", "B组", "C组");
        List<String> ban = Arrays.asList("白班", "黑班");
        int count = 0;// 第几次排班 用来取余班组 算获取哪个班组
        for (int month = 1; month <= 12; month++) {// 按照月份排期
            System.out.println(month + "月份排班计划");
            int num = DateUtil.lengthOfMonth(month, DateUtil.isLeapYear(DateUtil.year(date)));// 获取月份天数
            for (int i = 1; i <= num; i++) {
                System.out.print("第" + i + "天排班: ");
                for (int j = 0; j < ban.size(); j++) {
                    int temp = count % banzu.size();
                    System.out.print(ban.get(j) + ">>" + banzu.get(temp) + " ");
                    count++;
                }
                System.out.println();
            }
        }
    }
}

Some results are as follows:

2023 shift plan
January shift plan
1st day shift: Day shift >> Group A black shift >> Group B
2nd day shift: Day shift >> Group C black shift >> Group A
3rd day shift: Day shift >> Group B black shift >> Group C
schedule on the 4th day: Day shift >> Group A black shift >> Group B
schedule on the 5th day: Day shift >> Group C black shift >> Group A schedule
on the 6th day : Day shift >> Group B black shift >> Group C
schedule on the 7th day: Day shift >> Group A black shift >> Group B
schedule on the 8th day: Day shift >> Group C black shift >> Group A schedule
on the 9th day Shift: day shift >> group B black shift >> group C
day 10 schedule: day day >> group A black shift >> group B
day 11 shift: day shift >> group C black shift >> group A day
12 Scheduling: Day shift >> Group B black shift >> Group C
Day 13 shift: Day shift >> Group A black shift >> Group B
Day 14 shift: Day shift >> Group C black shift >> Group A No.
15 Day shift: Day shift >> Group B black shift >> Group C
The 16th day shift: Day shift >> Group A black shift >> Group B
The 17th day shift: Day shift >> Group C black shift >> Group A
first 18 days schedule:Day shift >> Group B black shift >> Group C
shift on the 19th day: day shift >> Group A black shift >> Group B shift
on the 20th day: day shift >> Group C black shift >> Group A shift
on the 21st day : Day shift >> Group B black shift >> Group C
The 22nd day shift: Day shift >> Group A black shift >> Group B
The 23rd day shift: Day shift >> Group C black shift >> Group A
Day 24 schedule: Day shift >> Group B black shift >> Group C
Day 25 shift: Day shift >> Group A black shift >> Group B
Day 26 shift: Day shift >> Group C black shift >> A Group
The 27th day shift: Day shift >> Group B black shift >> Group C
The 28th day shift: Day shift >> Group A black shift >> Group B
The 29th day shift: Day shift >> Group C black shift >> Group A
shift on the 30th day: day shift >> Group B black shift >> Group C
shift on the 31st day: day shift >> Group A black shift >> Group B
February shift plan
The first day shift: day shift >> Group C black shift>>A group
shift on the second day: day shift>>B group black shift>>C group
shift on the third day: day shift>>A group black shift>>B group
day 4 shift: day shift> >Group C black shift>>A group
shift on the 5th day: day shift>>Group B black shift>>C group
shift on the 6th day: day shift>>A group black shift>>B group
shift on the 7th day: day shift >>Group C black shift>>A group
schedule on the 8th day: day shift>>B group black shift>>C group
schedule on the 9th day: day shift>>A group black shift>>B group
schedule on the 10th day: Day shift>>C group black shift>>A group
The 11th day shift:Day shift >> Group B black shift >> Group C
shift on the 12th day: Day shift >> Group A black shift >> Group B shift
on the 13th day: Day shift >> Group C black shift >> Group A shift
on the 14th day : Day shift >> Group B black shift >> Group C
The 15th day shift: Day day >> Group A black shift >> Group B
The 16th day shift: Day shift >> Group C black shift >> Group A
Day 17 shift: day shift >> group B black shift >> group C
day 18 shift: day shift >> group A black shift >> group B
day 19 shift: day shift >> group C black shift >> A Group
The 20th day shift: Day shift >> Group B black shift >> Group C
The 21st day shift: Day shift >> Group A black shift >> Group B
The 22nd day shift: Day shift >> Group C black shift >> Group A
shift on day 23: day shift >> group B black shift >> group C
shift on day 24: day shift >> group A black shift >> group B shift on
day 25: day shift >> group C black shift> >Group A
day 26 shift: day shift >> Group B black shift >> Group C
day 27 shift: day shift >> Group A black shift >> Group B
day 28 shift: day shift >> Group C black shift >>Group A

2. Scheduling plan for two shifts

public class BlackWhite {

    /**
     * 两个班组 黑白倒班 工作12 休息12
     * 两个班组每月轮换一次黑白班: 月末那天晚班班组将继续下月第一天的白班 干24休息12
     *
     * @param args
     */
    public static void main(String[] args) {

        Date date = new Date();// 任意制定一个日期 排全年计划
        System.out.println(DateUtil.year(date) + "年排班计划");
        List<String> banzu = Arrays.asList("A组", "B组");
        List<String> ban = Arrays.asList("白班", "黑班");
        int count = 0;// 第几次排班 用来取余班组 算获取哪个班组
        for (int month = 1; month <= 12; month++) {// 按照月份排期
            System.out.println(month + "月份排班计划");
            int num = DateUtil.lengthOfMonth(month, DateUtil.isLeapYear(DateUtil.year(date)));// 获取月份天数
            for (int i = 1; i <= num; i++) {
                System.out.print("第" + i + "天排班: ");
                for (int j = 0; j < ban.size(); j++) {
                    int temp = count % banzu.size();
                    count++;
                    System.out.print(ban.get(j) + ">>" + banzu.get(temp) + " ");
                }
                if (i == num) {
                    Collections.reverse(banzu);
                }
                System.out.println();
            }
        }
    }
}

Partial print results:

2023 shift plan
January shift plan
1st day shift: day shift >> group A black shift >> group B
shift on the 2nd day: day shift >> group A black shift >> group B
shift on the 3rd day: Day shift >> Group A black shift >> Group B shift
on the 4th day: Day shift >> Group A black shift >> Group B shift
on the 5th day: Day shift >> Group A black shift >> Group B shift
on the 6th day : Day shift >> Group A black shift >> Group B shift
on the 7th day: Day shift >> Group A black shift >> Group B shift
on the 8th day: Day shift >> Group A black shift >> Group B
on the 9th day Shift: Day shift >> Group A black shift >> Group B
Day 10 schedule: Day shift >> Group A black shift >> Group B
Day 11 shift: Day shift >> Group A black shift >> Group B
Day 12 Scheduling: Day shift >> Group A black shift >> Group B
The 13th day shift: Day shift >> Group A black shift >> Group B
The 14th day shift: Day shift >> Group A black shift >> Group B No.
15 Day shift: Day shift >> Group A black shift >> Group B
The 16th day shift: Day shift >> Group A black shift >> Group B
The 17th day shift: Day shift >> Group A black shift >> Group B
first 18 days schedule:Day shift >> Group A black shift >> Group B
Day 19 shift: Day shift >> Group A black shift >> Group B
Day 20 shift: Day shift >> Group A black shift >> Group B shift
on day 21 : Day shift >> Group A black shift >> Group B
The 22nd day shift: Day shift >> Group A black shift >> Group B
The 23rd day shift: Day shift >> Group A black shift >> Group B
Day 24 schedule: day shift >> group A black shift >> group B
day 25 shift: day shift >> group A black shift >> group B
day 26 shift: day shift >> group A black shift >> B Group
The 27th day shift: Day shift >> Group A black shift >> Group B
The 28th day shift: Day shift >> Group A black shift >> Group B
The 29th day shift: Day shift >> Group A black shift >> Group B
shift on the 30th day: day shift >> Group A black shift >> Group B
shift on the 31st day: day shift >> Group A black shift >> Group B's
February shift plan
The first day shift: day shift >> Group B black shift>>A group
shift on the 2nd day: day shift>>Group B black shift>>A group
shift on the 3rd day: day shift>>B group black shift>>A group
shift on the 4th day: day shift> >Group B black shift>>A group
shift on the 5th day: day shift>>Group B black shift>>A group
shift on the 6th day: day shift>>B group black shift>>A group
shift on the 7th day: day shift >>Group B black shift>>A group
schedule on the 8th day: day shift>>B group black shift>>A group
schedule on the 9th day: day shift>>B group black shift>>A group
schedule on the 10th day: Day shift >> Group B black shift >> Group A
The 11th day shift:Day shift >> Group B black shift >> Group A
shift on the 12th day: Day shift >> Group B black shift >> Group A Shift
on the 13th day: Day shift >> Group B black shift >> Group A shift
on the 14th day : Day shift >> Group B black shift >> Group A
Day 15 shift: Day day >> Group B black shift >> Group A
Day 16 shift: Day shift >> Group B black shift >> Group A
Day 17 shift: day shift >> group B black shift >> group A
day 18 shift: day shift >> group B black shift >> group A
day 19 shift: day shift >> group B black shift >> A Group
The 20th day shift: Day shift >> Group B black shift >> Group A
The 21st day shift: Day shift >> Group B black shift >> Group A
The 22nd day shift: Day shift >> Group B black shift >> Group A
shift on day 23: day shift >> group B black shift >> group A
shift on day 24: day shift >> group B black shift >> group A shift on
day 25: day shift >> group B black shift> >Group A
shift on day 26: day shift>>group B black shift>>group A
shift on day 27: day shift>>group B black shift>>group A shift on
day 28: day shift>>group B black shift >>Group A
shift plan for March Day
1: day shift >>Group A black shift >>Group B
day 2 shift: day shift >>Group A black shift >>Group B day
3 shift: day shift >>Group A black shift>>Group B
day 4 shift: day shift>>A group black shift>>B group
day 5 shift: day shift>>A group black shift>>B group
day 6 shift: Day shift>>A group black shift>>B group
The 7th day shift:Day shift >> Group A black shift >> Group B shift
on the 8th day: Day shift >> Group A black shift >> Group B shift
on the 9th day: Day shift >> Group A black shift >> Group B shift
on the 10th day : Day shift >> Group A black shift >> Group B
Day 11 schedule: Day shift >> Group A black shift >> Group B
Day 12 shift: Day shift >> Group A black shift >> Group B
Day 13 schedule: day shift >> group A black shift >> group B
day 14 shift: day shift >> group A black shift >> group B
day 15 shift: day shift >> group A black shift >> B Group
Day 16 schedule: day shift >> group A black shift >> group B
day 17 shift: day shift >> group A black shift >> group B
day 18 shift: day shift >> group A black shift >> Group B
day 19 shift: day shift >> group A black shift >> group B
day 20 shift: day shift >> group A black shift >> group B
day 21 shift: day shift >> group A black shift> >Group B
day 22 shift: day shift >> group A black shift >> group B
day 23 shift: day shift >> group A black shift >> group B
day 24 shift: day shift >> group A black shift >>Group B
day 25 shift: day shift >>Group A black shift >>Group B
day 26 shift: day shift >>Group A black shift >>Group B
day 27 shift: day shift >>Group A black Shift >> Group B
The 28th day shift: Day shift >> Group A black shift >> Group B
The 29th day shift: Day shift >> Group A black shift >> Group B
The 30th day shift: Day shift >> Group A Black shift>>Group B
The 31st day schedule:Day shift >> Group A black shift >> Group B
shift schedule in April
The first day shift: Day shift >> Group B black shift >> Group A
The second day shift: Day shift >> Group B black shift >> Group A
Day 3 shift: Day shift >> Group B black shift >> Group A
Day 4 shift: Day shift >> Group B black shift >> Group A
Day 5 shift: Day shift >> Group B black shift >> A Group
Day 6 schedule: Day shift >> Group B black shift >> Group A
Day 7 shift: Day shift >> Group B black shift >> Group A
Day 8 shift: Day shift >> Group B black shift >> A Group
9th day shift: Day shift >> Group B black shift >> Group A
Day 10 shift: Day shift >> Group B black shift >> Group A
Day 11 shift: Day shift >> Group B black shift >> Group A
shift on day 12: day shift >> group B black shift >> group A
shift on day 13: day shift >> group B black shift >> group A shift on
day 14: day shift >> group B black shift> >Group A
day 15 shift: day shift >> group B black shift >> group A
day 16 shift: day shift >> group B black shift >> group A
day 17 shift: day shift >> group B black shift >>Group A
shift on day 18: day shift >>Group B black shift >>Group A
shift on day 19: day shift >>Group B black shift >>Group A shift on
day 20: day shift >>Group B black Shift >> Group A
The 21st day shift: Day shift >> Group B black shift >> Group A
The 22nd day shift: Day shift >> Group B black shift >> Group A
The 23rd day shift: Day shift >> Group B Black shift>>Group A
The 24th day schedule:Day shift >> Group B black shift >> Group A shift
on the 25th day: Day shift >> Group B black shift >> Group A
Shift on the 26th day: Day shift >> Group B black shift >> Group A shift
on the 27th day : Day shift >> Group B black shift >> Group A
The 28th day shift: Day shift >> Group B black shift >> Group A
The 29th day shift: Day shift >> Group B black shift >> Group A
Day 30 schedule: Day shift >> Group B black shift >> Group A
shift plan for May
Day 1 shift: Day shift >> Group A black shift >> Group B


Summarize

The overall idea is:

  1. Take the remainder of the number of teams according to the number of shifts, and get the team that should perform the task
  2. Get the current year and the number of days per month in the current year according to time
  3. The serial number of the day of each month, and the corresponding shift group gives the shift result
  4. Then the third shift is to move down the shift normally.
  5. If there are two shifts, I adopt flipped shifts here, so that it can be realized: the night shift at the end of the month will continue to work on the day shift on the first day of the next month with 24 days off and 12 days off

Guess you like

Origin blog.csdn.net/qq_32419139/article/details/132337675