java排班算法-几班几倒

public static void main(String[] args) {
    String array = "";
    //班组
    String[] dutyArr = {"A组","B组","C组","D组","E组"};
    int dutyNum=dutyArr.length;
    //日期
    int days = getDaysOfMonth(new Date());
    //班次
    String[] classArr = {"早班","中班","晚班","休息","休息"};
    int classNum = classArr.length;
    int allClass=0;
    for (int i=0; i<days; i++) {
        for(int j =0; j< classNum;j++){
            int a = i % dutyNum;
            if(j+a < dutyNum) {
                System.out.println(i + 1 + "号排班:"+ dutyArr[j+a]);
            } else if(j+a >= dutyNum){
               System.out.println(i + 1 + "号排班:"+ dutyArr[(j+a)-dutyNum]);
            }
        }
    }
}

/**
 * 获取某个月的天数
 * @param date
 * @return
 */
public static int getDaysOfMonth(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
经验分享 程序员 微信小程序 职场和发展