Java 某個起始時間,固定的累加天數,計算週期

Java 某個起始時間,固定的一個天數相加,計算週期每次加過後的週期

前言

項目中有這麼一個業務場景,數據庫中某張表有個起始時間,和一個累加時間,比如2020-01-07,往後每次加3天爲一個週期,到2020-01-10是週期1,到2020-01-13是週期2,以此類推。通過Java可以直接計算出週期,然後進行數據庫操作。

代碼

    /**
     * 獲取某個日期和當前時間差幾天
     */
    public static Long getDayPassed(Date beginDate) {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Long days = null;
        try {
            Date currentTime = dateFormat.parse(dateFormat.format(new Date()));//現在系統當前時間
            long diff = currentTime.getTime() - beginDate.getTime();
            days = diff / (1000 * 60 * 60 * 24);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return days;
    }

傳入數據庫中數據的起始時間,計算出距離當前時間相差多少天

        int differNum = getDayPassed(rankPeriod.getBeginDate()).intValue();
        // 拿到數據庫中配置的時間間隔
        int cycle = rankPeriod.getCircleDay();
        int period = Math.floorDiv(differNum, cycle);
        if (differNum % cycle != 0) {
            period = period + 2;
        } else {
            period = period + 1;
        }

上面代碼的意思就在於,起始時間和當前時間相差多少天,比如2020-01-07是當前時間,起始時間是2020-01-02,相差了5天,數據庫配置的間隔天數是2天,通過Math.floorDiv方法,兩個天數相除得到一個整數2,
再取兩個數的餘數,不爲0整除的話加2,最後得出的2020-01-022020-01-07有3個週期

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章