项目中的问题总结——签到取连续签到次数

       
    public int getUserSignInDays(Long userId,int todaySignInTimes) {//当天签到时间
        //定义一个数组用来存放当月签到的时间
        ArrayList signInTimes = talentIntegralRecordDao.getCurrentMonthSignInTimeByUserId(userId);
        
        if(signInTimes.size()==0){
            return 0;
        }
        
        //定义一个int类型的数组用来存放当月的日期(只放日,不放月份 0-29、0-30、0-31之间的数字)
        int[] signInDays = new int[signInTimes.size()];        
        
        for(int i=0;i             signInDays[i]=signInTimes.get(i).getDate(); //只取日期放到int数组  signInDays[8,9,17]
        }        
        
        Date date = new Date();    
        
        int today = date.getDate();    //取今天的日期17号 17    
        
        int maxnum = 0; //记录连续签到的次数
        
        for(int i = 0;i             if(signInDays[signInDays.length-i-1]==today-i){  //数组的最后一个数和今天比;倒数第二个数和昨天比;倒数第3个数跟前天比,相等就+1;......以此类推。
            
                maxnum++;
            }else{
                break;
            }
        }                 
        return maxnum;
    }

你可能感兴趣的:(javaEE总结)