package duty;

import java.util.Calendar;
import java.util.Date;

/**
 * 自动排班
 **/
public class AutoScheduleDuty {

    public static void main(String[] args) {
        //班组
        String[] dutyArr = {"A组","B组","C组","D组"};
        int dutyNum=dutyArr.length;
        //日期
        int days = getDaysOfMonth(new Date());
        //班次
        String[] classArr = {"早班","中班","晚班"};
        int classNum = classArr.length;
        int allClass=0;
        for (int i=1; i<=days; i++) {
            System.out.println(i+"号排班:");
            for (int j=1; j<=classNum; j++) {
                //总排班数加1
                allClass++;
                int temp = allClass%dutyNum;
                //班组下标,确定取哪个班组
                int tempSub = temp-1;
                //如果整除,取最后一个班组
                if(temp==0){
                    tempSub=dutyNum-1;
                }
                System.out.println(classArr[j-1]+"-"+dutyArr[tempSub]);
            }
        }
        System.out.println("值班排班次数:"+allClass);

    }

    /**
     * 获取某个月的天数
     * @param date
     * @return
     */
    public static int getDaysOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    }

}