⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydate.java

📁 利用JAVA语言编写的简单的图书馆管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * 指定日期减去指定的天数的操作
     * @param date
     * @param days
     * @return
     * @throws IllegalArgumentException
     */
    public String reduceDays(Date date, int days) throws
            IllegalArgumentException {
        return reduceDays(formatDate(date), days);
    }

    /**
     * 指定日期减去指定的天数的操作
     * @param date
     * @param days
     * @return
     * @throws IllegalArgumentException
     */
    public String reduceDays(String date, int days) throws
            IllegalArgumentException {

        validate(date);
        ymd = splitYMD(date);

        if (isLeapYear(ymd[Y])) {
            ymd[D] -= days;
            if (ymd[D] <= 0) {
                ymd[M]--;
                if (ymd[M] < 1) {
                    ymd[M] += 12;
                    ymd[Y]--;
                }
                ymd[D] = ymd[D] + DAYS_P_MONTH_LY[ymd[M] - 1];
                if (ymd[D] <= 0) {
                    reduceDays(formatYear(ymd[Y]) +
                               formatMonthDay(ymd[M]) +
                               formatMonthDay(1),
                               abs(ymd[D] - 1));
                }
            }
        } else {
            ymd[D] -= days;
            if (ymd[D] <= 0) {
                ymd[M]--;
                if (ymd[M] < 1) {
                    ymd[M] += 12;
                    ymd[Y]--;
                }
                ymd[D] = ymd[D] + DAYS_P_MONTH_CY[ymd[M] - 1];
                if (ymd[D] <= 0) {
                    reduceDays(formatYear(ymd[Y]) +
                               formatMonthDay(ymd[M]) +
                               formatMonthDay(1),
                               abs(ymd[D] - 1));
                }
            }
        }
        return formatYear(ymd[Y]) +
                formatMonthDay(ymd[M]) +
                formatMonthDay(ymd[D]);
    }

    /**
     * 格式化一个日期字符串
     * @param date
     * @return
     */
    public static String formatDate(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        return sdf.format(date);
    }

    /**
     * 将代表日期的字符串分割为代表年月日的整形数组
     * @param date
     * @return
     */
    public static int[] splitYMD(String date) {
        int[] ymd = {
                    0, 0, 0};
        ymd[Y] = Integer.parseInt(date.substring(0, 4));
        ymd[M] = Integer.parseInt(date.substring(4, 6));
        ymd[D] = Integer.parseInt(date.substring(6, 8));
        return ymd;
    }

    /**
     * 将不足两位的月份或日期补足为两位
     * @param decimal
     * @return
     */
    public static String formatMonthDay(int decimal) {
        DecimalFormat df = new DecimalFormat("00");
        return df.format(decimal);
    }

    /**
     * 将不足四位的年份补足为四位
     * @param decimal
     * @return
     */
    public static String formatYear(int decimal) {
        DecimalFormat df = new DecimalFormat("0000");
        return df.format(decimal);
    }

    /**
     * 取绝对值操作
     * @param num
     * @return
     */
    public static int abs(int num) {
        return (num > 0) ? num : -num;
    }

    public static String getYear(String date) {
        return date.substring(0, 4);
    }

    public static String getMonth(String date) {
        return date.substring(4, 6);
    }

    public static String getDay(String date) {
        return date.substring(6, 8);
    }

    public static String addMonth(String date) {
        int month = setZ(date.substring(4, 6));
        int year = setZ(date.substring(0, 4));
        if (month + 1 > 12) {
            year++;
            month = 1;
        } else {
            month++;
        }

        return setZ(year) + "" + setZ(month) + date.substring(6, 8) +
                date.substring(8, 10) +
                date.substring(10, 12) + date.substring(12, 14);
    }

    public static int setZ(String i) {
        if (!i.equals("0")) {
            if (i.startsWith("0")) {
                return Integer.parseInt(i.substring(1, 2));
            }
        }
        return Integer.parseInt(i);
    }

    public static String setZ(int i) {
        if (i < 10 && i > 0) {
            return "0" + i;
        } else {
            return "" + i;
        }
    }

    public static String chengeDays(String date, int day) {
        return date.substring(0, 6) + setZ(day) + date.substring(8, 14);
    }

    public static String jianMonth(String date) {
        int month = setZ(date.substring(4, 6));
        int year = setZ(date.substring(0, 4));
        if (month - 1 < 1) {
            year--;
            month = 12;
        } else {
            month--;
        }

        return setZ(year) + "" + setZ(month) + date.substring(6, 8) +
                date.substring(8, 10) +
                date.substring(10, 12) + date.substring(12, 14);
    }


    public static String printDays() {
        String date = getDate();
        return getYear(date) + "." + getMonth(date) + "." + getDay(date);
    }

    public static String printDays(String date) {
        return getYear(date) + "." + getMonth(date) + "." + getDay(date);
    }

    public int getMonthDays(int month, boolean type) {
        int res = 0;
        switch (month) {
        case 1:
            res = 31;
            break;
        case 2:
            if (type) {
                res = 29;
            } else {
                res = 28;
            }
            break;
        case 3:
            res = 31;
            break;
        case 4:
            res = 30;
            break;
        case 5:
            res = 31;
            break;
        case 6:
            res = 30;
            break;
        case 7:
            res = 31;
            break;
        case 8:
            res = 31;
            break;
        case 9:
            res = 30;
            break;
        case 10:
            res = 31;
            break;
        case 11:
            res = 30;
            break;
        case 12:
            res = 31;
            break;
        }
        return res;
    }

    public int getYearDay(int years) {
        int res = 0;
        for (int i = 1; i <= years; i++) {
            if (this.isLeapYear(i)) {
                res += 366;
            } else {
                res += 365;
            }
        }
        return res;
    }

    public static long jianfa(String star, String end) {
        long days=0;
        try {
            SimpleDateFormat f = new SimpleDateFormat("yyyy-mm-dd");
            Date d1 = null;
            d1 = f.parse(formatDate(star));
            Date d2 = f.parse(formatDate(end));
           days=(long)((d2.getTime()-d1.getTime())/(60*60*24));
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
        return days;
    }
    public static String formatDate(String date)
    {
        String res=date.substring(0,4)+"-"+date.substring(4,6)+"-"+date.substring(6,8);
        return res;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -