public int getUserSignInDays(Long userId,int todaySignInTimes) {//当天签到时间
//定义一个数组用来存放当月签到的时间
ArrayList<Date> 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.length;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<signInDays.length;i++){
if(signInDays[signInDays.length-i-1]==today-i){ //数组的最后一个数和今天比;倒数第二个数和昨天比;倒数第3个数跟前天比,相等就+1;......以此类推。
maxnum++;
}else{
break;
}
}
return maxnum;
}