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;
}