項目中的問題總結——簽到取連續簽到次數

       
    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;
    }
發佈了54 篇原創文章 · 獲贊 16 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章