zoukankan      html  css  js  c++  java
  • java 获取连续签到天数

          public static void main(String[] args) throws ParseException {
            List<SignIn> signInList = new ArrayList<>();
            signInList.add(new SignIn("2019-12-13"));
            signInList.add(new SignIn("2019-12-12"));
            signInList.add(new SignIn("2019-12-11"));
            signInList.add(new SignIn("2019-12-10"));
            signInList.add(new SignIn("2019-12-03"));
            signInList.add(new SignIn("2019-12-09"));
            signInList.add(new SignIn("2019-12-07"));
            signInList.add(new SignIn("2019-12-06"));
            signInList.add(new SignIn("2019-12-05"));
            int continuousSignInDay = getContinuousSignInDay(signInList);
            System.out.println("连续签到日期:"+ continuousSignInDay);
    
        }
        
        
        private static int getContinuousSignInDay(List<SignIn> signInList) throws ParseException {
            //continuousDay 连续签到数
            int continuousDay = 1;
            boolean todaySignIn = false;
    // today 当天日期 Date today
    = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String todays=sdf.format(today); for (int i = 0; i < signInList.size(); i++) { SignIn signIn = signInList.get(i); int intervalDay = distanceDay(sdf.parse(todays), signIn.getSignInDay()); //当天签到 if (intervalDay == 0 && i == 0) { todaySignIn = true; }else if (intervalDay == continuousDay) { continuousDay++; }else { //不连续,终止判断 break; } } if (!todaySignIn) { continuousDay--; } return continuousDay; } //判断当天日期 与以往签到日期相隔天数 private static int distanceDay(Date largeDay, Date smallDay) { int day = (int) ((largeDay.getTime() - smallDay.getTime()) / (1000 * 60 * 60 * 24));return day; }
    
    

    SignIn 实体类:

    public class SignIn {
    
        private Date signInDay; 
        public SignIn(){
        }
    
        public SignIn(String day) throws ParseException{
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            setSignInDay(sdf.parse(day));
        }
    
        public Date getSignInDay() {
            return signInDay;
        }
    
        public void setSignInDay(Date signInDay) {
            this.signInDay = signInDay;
        }
    
    }
  • 相关阅读:
    hdu 1704 Rank(floyd传递闭包)
    codeforces 85D. Sum of Medians(线段树or分块)
    hdu 1706 The diameter of graph(folyd计数)
    hdu 4705 Y(树形DP)
    hdu 4123 Bob’s Race(树形DP+rmq)
    hdu 2196 Computer(树形DP)
    hdu 3534 Tree(树形DP)
    hdu 6017 Girls Love 233(dp)
    [HDU5903]Square Distance(DP)
    HDU5878~HDU5891 2016网络赛青岛
  • 原文地址:https://www.cnblogs.com/jyy599/p/12034651.html
Copyright © 2011-2022 走看看