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;
        }
    
    }
  • 相关阅读:
    java 构造函数内部的多态方法 完全剖析
    Android 高仿微信 获取最近刚刚拍照的缩略图 功能实现
    Android 高仿豌豆荚 一键安装app 功能 实现
    Android Bitmap实战技巧
    Android 异步加载神器Loader全解析
    Android 开源项目PhotoView源码分析
    细数Android开源项目中那些频繁使用的并发库中的类
    js 压缩图片 H5
    上传从剪贴板复制的图片
    moble 设备多指手势识别 (tap , double_tap , pinch)
  • 原文地址:https://www.cnblogs.com/jyy599/p/12034651.html
Copyright © 2011-2022 走看看