Java通用工具类(一)------常用工具类!

C++面向对象程序设计大作业:魔兽世界(三):开战 C++面向对象程序设计大作业:魔兽世界(三):开战问题描述问题分析代码 问题描述 问题来自于北京大学郭炜老师的C++慕课的大作业 魔兽世界的西面是红魔军的司令部,东面是蓝魔军的司令部。两个司令部之间是依次排列的若干城市,城市从西向东依次编号为1,2,3 … N ( N <= 20)。红魔军的司令部算作编号为0的城市,蓝魔军的司令部算作编号为N+1的城市。司令部有生命元,用于制造武士。 两军的司令部都会制造武士。武士共有dragon 、ninja、iceman、lion、wolf 五种。每种武士都有 阅读详情
 

package com.travel.tools.database;

import java.text.*;
import java.util.*;

/**
 *
 * <p>
 * Title: 通用工具类
 * </p>
 * <p>
 * Description: 常用工具的集合,用来处理常见问题,比如中文乱码的方法等。
 * </p>
 * <p>
 * Copyright: Copyright (c) 2003
 * </p>
 * <p>
 * Company: Towery
 * </p>
 *
 * @author WangPinHeng
 * @version 1.0
 */
public class Tools {
    public Tools() {
        //
    }

    /**
     * 字符串替换,将 source 中的 oldString 全部换成 newString
     *
     * @param source
     *            源字符串
     * @param oldString
     *            老的字符串
     * @param newString
     *            新的字符串
     * @return 替换后的字符串
     */
    private static String Replace(String source, String oldString,
            String newString) {
        StringBuffer output = new StringBuffer();

        int lengthOfSource = source.length(); // 源字符串长度
        int lengthOfOld = oldString.length(); // 老字符串长度

        int posStart = 0; // 开始搜索位置
        int pos; // 搜索到老字符串的位置

        while ((pos = source.indexOf(oldString, posStart)) >= 0) {
            output.append(source.substring(posStart, pos));

            output.append(newString);
            posStart = pos + lengthOfOld;
        }

        if (posStart < lengthOfSource) {
            output.append(source.substring(posStart));
        }

        return output.toString();
    }

    /**
     * 转换SQL中的特殊符号,比如将单引号"'"替换为"''",以免产生SQLException
     *
     * @param sqlstr
     *            原SQL
     * @return 处理后的SQL
     */
    public static String toSql(String sqlstr) {
        String strsql = sqlstr;
        if (strsql == null) {
            return "";
        }
        strsql = Replace(strsql, "'", "''");
        return strsql;
    }

    /**
     * 将ISO8859_1编码的字符串转化为GB2312编码的字符串,主要用来处理中文显示乱码的问题
     *
     * @param ISO8859_1str
     *            通过ISO8859_1编码的字符串
     * @return 通过GB2312编码的字符串
     */
    public String GBString(String ISO8859_1str) {
        if (ISO8859_1str == null) {
            return "";
        } else {
            try {
                return new String(ISO8859_1str.getBytes("ISO8859_1"), "GB2312");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    /**
     * 将ISO8859_1编码的字符串转化为GB2312编码的字符串,主要用来处理中文显示乱码的问题
     *
     * @param ISO8859_1str
     *            通过ISO8859_1编码的字符串
     * @return 通过GB2312编码的字符串
     */
    public static String GB2312FromISO8859_1(String ISO8859_1str) {
        if (ISO8859_1str == null) {
            return "";
        } else {
            try {
                return new String(ISO8859_1str.getBytes("ISO8859_1"), "GB2312");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    public String trim1(String str) {
        String str1 = "";

        if (str.substring(0, 1).equals("?")) {
            str1 = str.substring(1, str.length());
            System.out.println("str1=" + str1);
        } else {
            str1 = str;
        }

        return str1.trim();
    }

    public String dateformat(String str) {
        String day = str.substring(0, 2);
        String month = str.substring(3, 5);
        String year = str.substring(6, 10);
        str = year + "-" + month + "-" + day;
        return str;
    }

    public String tenformat(String str) {
        if (str.length() == 8) {
            String year = str.substring(0, 4);
            String month = "0" + str.substring(5, 6);
            String day = "0" + str.substring(7, 8);
            str = year + "-" + month + "-" + day;
        } else if (str.length() == 9) {
            if (str.substring(6, 7).equals("-")) {
                str = str.substring(0, 5) + "0" + str.substring(5, 9);
            } else {
                str = str.substring(0, 8) + "0" + str.substring(8, 9);
            }

        }
        return str;
    }

    /**
     * 计算两个时间
     *
     * @param str
     *            原时间,strsub,需减少的时间
     * @return 计算后的时间
     */
    public String subTime(String str, String strSub) {
        String rsTime = "";
        int hour = 0;
        int sec = 0;
        int secsub = 0;
        str = trim(str);
        strSub = trim(strSub);
        if (str.length() == 5) {
            hour = Integer.parseInt(str.substring(0, 2));

            sec = Integer.parseInt(str.substring(3, 5));

        } else if (str.length() == 4) {
            hour = Integer.parseInt(str.substring(0, 1));

            sec = Integer.parseInt(str.substring(2, 4));

        }
        if (trim(strSub).length() == 5) {
            secsub = Integer.parseInt(strSub.substring(0, 2));

        } else if (trim(strSub).length() == 4) {
            secsub = Integer.parseInt(strSub.substring(0, 1));

        }

        //int a = sec + secsub;
        if (sec < secsub) {
            //System.out.println("sub <");
            String jstr = Integer.toString(sec + 60 - secsub);
            String hstr = Integer.toString(hour - 1);
            //System.out.println("jstr="+jstr);
            //System.out.println("hstr="+hstr);
            if (jstr.length() == 1) {
                jstr = "0" + jstr;
            }
            if (hstr.length() == 1) {
                hstr = "0" + hstr;
            }
            rsTime = hstr + ":" + jstr;

        } else if (sec == secsub) {
            //System.out.println("sub =");
            String strh = Integer.toString(hour);
            //System.out.println("strh="+strh);
            if (strh.length() == 1) {
                strh = "0" + strh;
            }
            rsTime = strh + ":00";

        } else if (sec > secsub) {
            //System.out.println("sub >");
            String jstr = Integer.toString(sec - secsub);
            //System.out.println("jstr="+jstr);
            String hstr = Integer.toString(hour);
            //System.out.println("hstr="+hstr);
            if (jstr.length() == 1) {
                jstr = "0" + jstr;
            }
            if (hstr.length() == 1) {
                hstr = "0" + hstr;
            }
            rsTime = hstr + ":" + jstr;

        }
        return rsTime;
    }

    public String toSENDstr(String input) {
        String r = input;
        r = replace(r, "&", "");
        r = replace(r, "/", "|");
        r = replace(r, "/r", "");
        r = replace(r, "/n", "");
        r = replace(r, "'", "");
        r = replace(r, " ", "");
        return r;
    }

    public String replace(String str, String strOld, String strNew) {
        String r = str;
        if (str != null && strOld != null && strNew != null) {
            int idx = str.indexOf(strOld);
            if (idx != -1) {
                String strPre = "";
                r = "";
                String strSuf = str;
                for (; idx != -1; idx = strSuf.indexOf(strOld)) {
                    strPre = strSuf.substring(0, idx);
                    strSuf = strSuf.substring(idx + strOld.length());
                    r = r + strPre + strNew;
                }

                r = r + strSuf;
            }
        }
        return r;
    }

    /**
     * 计算两个时间相差的分钟数
     *
     * @param time1
     *            string,time2,string
     * @return string
     */
    public String diffTime(String time1, String time2) {
        String rsTime = "";
        int hour = 0;
        int hour2 = 0;
        int sec = 0;
        int sec2 = 0;
        String str1 = trim(time1);
        String str2 = trim(time2);
        if (str1.length() == 5) {
            hour = Integer.parseInt(str1.substring(0, 2));

            sec = Integer.parseInt(str1.substring(3, 5));

        } else if (str1.length() == 4) {
            hour = Integer.parseInt(str1.substring(0, 1));

            sec = Integer.parseInt(str1.substring(2, 4));

        }
        if (str2.length() == 5) {
            hour2 = Integer.parseInt(str2.substring(0, 2));

            sec2 = Integer.parseInt(str2.substring(3, 5));

        } else if (str2.length() == 4) {
            hour2 = Integer.parseInt(str2.substring(0, 1));

            sec2 = Integer.parseInt(str2.substring(2, 4));

        }

        //int a = sec + secsub;
        if (sec < sec2) {
            //System.out.println("sub <");
            String jstr = Integer.toString(sec + 60 - sec2);
            if (jstr.length() == 1) {
                jstr = "0" + jstr;
            }
            if ((hour - 1) != hour2) {

                String hstr = Integer.toString(hour - 1 - hour2);

                if (hstr.length() == 1) {
                    hstr = "0" + hstr;
                }
                rsTime = hstr + ":" + jstr + ":00";
            } else {
                rsTime = jstr + ":00";
            }
        } else if (sec == sec2) {
            //System.out.println("sub =");
            if (hour != hour2) {

                String strh = Integer.toString(hour - hour2);
                //System.out.println("strh="+strh);
                if (strh.length() == 1) {
                    strh = "0" + strh;
                }
                rsTime = strh + ":00" + ":00";
            } else {
                rsTime = "00:00";
            }
        } else if (sec > sec2) {
            //System.out.println("sub >");
            String jstr = Integer.toString(sec - sec2);
            //System.out.println("jstr="+jstr);
            if (jstr.length() == 1) {
                jstr = "0" + jstr;
            }
            if (hour != hour2) {
                String hstr = Integer.toString(hour - hour2);
                //System.out.println("hstr="+hstr);
                if (hstr.length() == 1) {
                    hstr = "0" + hstr;
                }
                rsTime = hstr + ":" + jstr + ":00";
            } else {
                rsTime = jstr + ":00";
            }
        }
        return rsTime;
    }

    /**
     * 计算两个时间
     *
     * @param str
     *            原时间,stradd,需增加的时间
     * @return 计算后的时间
     */
    public String addTime(String str, String stradd) {
        String rsTime = "";
        int hour = 0;
        int sec = 0;
        int secadd = 0;
        int houradd = 0;
        str = trim(str);
        stradd = trim(stradd);
        if (str.length() == 5) {
            hour = Integer.parseInt(str.substring(0, 2));

            sec = Integer.parseInt(str.substring(3, 5));

        } else if (str.length() == 4) {
            hour = Integer.parseInt(str.substring(0, 1));

            sec = Integer.parseInt(str.substring(2, 4));

        }
        if (trim(stradd).length() == 5) {

            secadd = Integer.parseInt(stradd.substring(0, 2));

        } else if (trim(stradd).length() == 4) {
            secadd = Integer.parseInt(stradd.substring(0, 1));

        } else if (trim(stradd).length() == 7) {
            houradd = Integer.parseInt(stradd.substring(0, 1));
            secadd = Integer.parseInt(stradd.substring(2, 4));
        }
        int a = sec + secadd;
        if (a < 60) {
            String stra = Integer.toString(a);
            String strh = Integer.toString(hour + houradd);
            if (stra.length() == 1) {
                stra = "0" + stra;
            }
            if (strh.length() == 1) {
                strh = "0" + strh;
            } else if (Integer.parseInt(strh) > 24) {
                int h = Integer.parseInt(strh) / 24;
                strh = Integer.toString(h);
                if (h < 10) {
                    strh = "0" + Integer.toString(h);
                }
            }
            rsTime = strh + ":" + stra;

        } else if (a == 60) {
            String strh = Integer.toString(hour + houradd + 1);
            if (strh.length() == 1) {
                strh = "0" + strh;
            } else if (Integer.parseInt(strh) > 24) {
                int h = Integer.parseInt(strh) / 24;
                strh = Integer.toString(h);
                if (h < 10) {
                    strh = "0" + Integer.toString(h);
                }
            }
            rsTime = strh + ":00";

        } else if (a > 60) {
            int i = a / 60;
            int j = a % 60;
            String strj = Integer.toString(j);

            if (strj.length() == 1) {
                strj = "0" + strj;
            }
            String strh = Integer.toString(hour + houradd + i);
            if (strh.length() == 1) {
                strh = "0" + strh;
            } else if (Integer.parseInt(strh) > 24) {
                int h = Integer.parseInt(strh) / 24;
                strh = Integer.toString(h);
                if (h < 10) {
                    strh = "0" + Integer.toString(h);
                }
            }
            rsTime = strh + ":" + strj;

            if (j == 0) {
                rsTime = strh + ":00";

            }

        }
        return rsTime;
    }

    /**
     * 将UTF编码的字符串转化为GB2312编码的字符串,主要用来处理中文显示乱码的问题
     *
     * @param UTF
     *            通过UTF编码的字符串
     * @return 通过GB2312编码的字符串
     */
    public static String GB2312FromUTF(String UTF) {
        if (UTF == null) {
            return "";
        } else {
            try {
                return new String(UTF.getBytes("UTF-8"), "GB2312");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    /**
     * 将GB2312编码的字符串转化为UTF-8编码的字符串,主要用来处理中文显示乱码的问题
     *
     * @param GB2312
     *            通过GB2312编码的字符串
     * @return 通过UTF-8编码的字符串
     */
    public static String UTFFromGB2312(String GB2312) {
        if (GB2312 == null) {
            return "";
        } else {
            try {
                return new String(GB2312.getBytes("GB2312"), "UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    public static String GBKFromISO8859_1(String ISO8859_1) {
        if (ISO8859_1 == null) {
            return "";
        } else {
            try {
                return new String(ISO8859_1.getBytes("ISO8859_1"), "GBK");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    public static String GBKFromUTF(String UTF) {
        if (UTF == null) {
            return "";
        } else {
            try {
                return new String(UTF.getBytes("UTF-8"), "GBK");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    /**
     * 将ISO8859_1编码的字符串转化为UTF-8编码的字符串,主要用来处理中文显示乱码的问题
     *
     * @param ISO8859_1str
     *            通过ISO8859_1编码的字符串
     * @return 通过UTF-8编码的字符串
     */
    public static String UTFFromISO8859_1(String ISO8859_1str) {
        return ISO8859_1str;
    }

    public static String UTFFromGBK(String GBK) {
        if (GBK == null) {
            return "";
        } else {
            try {
                return new String(GBK.getBytes("GBK"), "UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    /**
     * 将UTF-8编码的字符串转化为ISO8859_1编码的字符串,主要用来处理中文显示乱码的问题
     *
     * @param UTF
     *            通过UTF编码的字符串
     * @return 通过ISO8859_1编码的字符串
     */
    public static String ISO8859_1FromUTF(String UTFstr) {
        if (UTFstr == null) {
            return "";
        } else {
            try {
                return new String(UTFstr.getBytes("UTF-8"), "ISO8859_1");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    /**
     * 将GB2312编码的字符串转化为ISO8859_1编码的字符串
     *
     * @param GBstr
     *            GB2312编码的字符串
     * @return ISO8859_1编码的字符串
     */
    public static String ISO8859_1String(String GBstr) {
        if (GBstr == null) {
            return "";
        } else {
            try {
                return new String(GBstr.getBytes("GB2312"), "ISO8859_1");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    /**
     * 将GB2312编码的字符串转化为ISO8859_1编码的字符串
     *
     * @param GBstr
     *            GB2312编码的字符串
     * @return ISO8859_1编码的字符串
     */
    public String ISO8859_1FromGB2312(String GBstr) {
        if (GBstr == null) {
            return "";
        } else {
            try {
                return new String(GBstr.getBytes("GB2312"), "ISO8859_1");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    public static String ISO8859_1FromGBK(String GBK) {
        if (GBK == null) {
            return "";
        } else {
            try {
                return new String(GBK.getBytes("GBK"), "ISO8859_1");
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    /**
     * 去除字符串两端空格。
     *
     * @param str
     *            需要处理的字符串
     * @return 去掉了两端空格的字符串,如果str 为 null 则返回 ""
     */
    public static String trim(String str) {
        if (str != null) {
            return str.trim();
        } else {
            return "";
        }
    }

    //  static public String mm_dd_yyyy = "MM-dd-yyyy HH:mm:ss";
    /**
     * 获得当前年份
     *
     * @return 当前年份,格式如:2003
     */
    public static int getCurrentYear() {
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy");
        return Integer.parseInt(sdf.format(new java.util.Date()));
    }

    /**
     * 获得当前月份
     *
     * @return 当前月份
     */
    public static int getCurrentMonth() {
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M");
        return Integer.parseInt(sdf.format(new java.util.Date()));
    }

    /**
     * 获得当前天
     *
     * @return 当前天
     */
    public static int getCurrentDay() {
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.DATE);
    }

    public static String getCurrentDateTime() {
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyy-MM-dd H:mm");
        return sdf.format(new Date());
    }

    /**
     * 获得形如 19770608 格式的当前年月日
     *
     * @return 当前年月日
     */
    public static String getSimpleCurrentDate() {
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyyMMdd HH:mm:ss");
        return sdf.format(new java.util.Date());
    }

    /**
     * 返回两个日期相差天数
     *
     * @param d1
     *            日期
     * @param d2
     *            日期
     * @return 天数
     */
    public int diffDate(Date d1, Date d2) {
        if ((d1 == null) || (d2 == null))
            return 0;

        Calendar cal = Calendar.getInstance();

        // from Locale, has nothing to do with your input date format
        int zoneoffset = cal.get(Calendar.ZONE_OFFSET);
        int dstoffset = cal.get(Calendar.DST_OFFSET);

        // getTime() return absolute GMT time
        // compensate with the offsets
        long dl1 = d1.getTime() + zoneoffset + dstoffset;
        long dl2 = d2.getTime() + zoneoffset + dstoffset;

        int intDaysFirst = (int) (dl1 / (60 * 60 * 1000 * 24)); //60*60*1000
        int intDaysSecond = (int) (dl2 / (60 * 60 * 1000 * 24));

        return intDaysFirst > intDaysSecond ? intDaysFirst - intDaysSecond
                : intDaysSecond - intDaysFirst;
    }

    /**
     * 将给定的时间转换为格式是8位的字符串
     *
     * @param date
     *            给定的时间
     * @return 格式化后的字符串形式的时间
     */
    public String get8BitDate(java.util.Date date) {
        if (date == null) {
            return "";
        }
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyyMMdd");
        return sdf.format(date);
    }

    public String to_date(String strdate, String df) {
        if (strdate == null) {
            return "";
        }
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss");
        java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat(
                "M/d/yyyy H:m:s");
        Date d = null;
        try {
            d = sdf1.parse(strdate);
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
        return sdf.format(d);
    }

    public static String get8BitString(String strDate) {
        if (strDate == null) {
            return "";
        }
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyy-MM-dd");
        java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat(
                "yyyyMMdd");
        Date d = null;
        try {
            d = sdf.parse(strDate);
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
        return sdf2.format(d);
    }

    public static String get8ByteTo10Byte(String strDate) {
        if (strDate == null) {
            return "";
        }
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyyMMdd");
        java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat(
                "yyyy-MM-dd");
        Date d = null;
        try {
            d = sdf.parse(strDate);
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
        return sdf2.format(d);
    }

    public static String getStandedDateTime(String strDate) {
        if (strDate == null) {
            return "";
        }
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyy-MM-dd");
        java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat(
                "yyyy-MM-dd");
        Date d = null;
        try {
            d = sdf.parse(strDate);
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
        return sdf2.format(d);
    }

    public static String getMonthDay(java.util.Date date) {
        if (date == null) {
            return "";
        }
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M月d日");
        return sdf.format(date);
    }

    public static String getHourMinute(java.util.Date date) {
        if (date == null) {
            return "";
        }
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("H:mm");
        return sdf.format(date);
    }

    /**
     * 判断字符串是否符合日期格式
     *
     * @param str
     *            字符串时间
     * @return
     */
    public static boolean isDate(String strDate) {
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyy-MM-dd");
        sdf.setLenient(false);
        try {
            sdf.parse(strDate);
            return true;
        } catch (ParseException ex) {
            return false;
        }
    }

    /**
     * 判断是否是数字
     *
     * @param str
     * @return
     */
    public static boolean isNumber(String strNumber) {
        boolean bolResult = false;
        try {
            Double.parseDouble(strNumber);
            bolResult = true;
        } catch (NumberFormatException ex) {
            bolResult = false;
        }
        return bolResult;
    }

    public String dateadd(Date strDate, int a) {
        String str = "";

        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyy-MM-dd");
        String strDate1 = sdf.format(strDate);

        int year = Integer.parseInt(strDate1.substring(0, 4));
        int month = Integer.parseInt(strDate1.substring(5, 7));
        int day = Integer.parseInt(strDate1.substring(8, 10));
        int md = getdayformonth(month);
        int i = (day + a) / md;
        int j = (day + a) % md;
        if (j == 0) {
            i = i - 1;
            j = md;
        }
        String strmon = "";
        String strday = "";
        String mondiff = "";
        if (i < 2) {
            if (Integer.toString(j).length() == 1) {
                strday = "0" + Integer.toString(j);
            } else {
                strday = Integer.toString(j);
            }
            if ((month + i) > 12) {
                int yeardiff = (month + i) / 12;
                int monthmod = (month + i) % 12;
                mondiff = Integer.toString(monthmod);
                if (Integer.toString(monthmod).length() == 1) {
                    mondiff = "0" + Integer.toString(monthmod);
                }
                str = Integer.toString(year + yeardiff) + "-" + mondiff + "-"
                        + strday;
            } else {
                strmon = Integer.toString(month + i);
                if (Integer.toString(month + i).length() == 1) {
                    strmon = "0" + Integer.toString(month + i);
                }

                str = Integer.toString(year) + "-" + strmon + "-" + strday;

            }
        } else {
            //主要判断假如天数,月份溢出的处理,
        }
        return str;
    }

    public int getdayformonth(int month) {
        int a = 0;
        switch (month) {
        case 1:
            a = 31;
            break;
        case 2:
            a = 28;
            break;
        case 3:
            a = 31;
            break;
        case 4:
            a = 30;
            break;
        case 5:
            a = 31;
            break;
        case 6:
            a = 30;
            break;
        case 7:
            a = 31;
            break;
        case 8:
            a = 31;
            break;
        case 9:
            a = 30;
            break;
        case 10:
            a = 31;
            break;
        case 11:
            a = 30;
            break;
        case 12:
            a = 31;
            break;
        default:

        }
        return a;
    }

    public String addOneDay(String strDate) //YYYY-MM-DD
    {
        int[] standardDays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        int[] leapyearDays = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        int y = Integer.parseInt(strDate.substring(0, 4));
        int m = Integer.parseInt(strDate.substring(4, 6));
        int d = Integer.parseInt(strDate.substring(6, 8)) + 1;
        int maxDateCount = 0;

        System.out.println(y);
        System.out.println(m);
        System.out.println(d);

        if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
            maxDateCount = leapyearDays[m - 1];
        } else {
            maxDateCount = standardDays[m - 1];
        }

        if (d > maxDateCount) {
            d = 1;
            m++;
        }

        if (m > 12) {
            m = 1;
            y++;
        }
        java.text.DecimalFormat yf = new java.text.DecimalFormat("0000");
        java.text.DecimalFormat mdf = new java.text.DecimalFormat("00");
        return yf.format(y) + mdf.format(m) + mdf.format(d);
    }

    public static String subOneDay(String strDate) {
        //YYYY-MM-DD
        int[] standardDays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        int[] leapyearDays = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        int y = Integer.parseInt(strDate.substring(0, 4));
        int m = Integer.parseInt(strDate.substring(4, 6));
        int d = Integer.parseInt(strDate.substring(6, 8)) - 1;
        int maxDateCount = 0;

        System.out.println(y);
        System.out.println(m);
        System.out.println(d);

        if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
            maxDateCount = leapyearDays[m - 1];
        } else {
            maxDateCount = standardDays[m - 1];
        }

        if (d > maxDateCount) {
            d = 1;
            m++;
        }

        if (m > 12) {
            m = 1;
            y++;
        }
        java.text.DecimalFormat yf = new java.text.DecimalFormat("0000");
        java.text.DecimalFormat mdf = new java.text.DecimalFormat("00");
        return yf.format(y) + mdf.format(m) + mdf.format(d);
    }

    public static void main(String[] argv) {
        System.out.println(Tools.getMonthDay(new java.util.Date()));
        System.out.println(Tools.getHourMinute(new java.util.Date()));
      
    }
}

java零基础从入门到精通(全) 目录前言1. 入门知识1.1 java体系1.2 JDK/JRE/JVM区别1.3 编译与运行理解1.4 体函数细节2. 标识符 前言 java优势 健壮性(JVM(C++语言写的个虚拟的计算机)、GC(垃圾回收机制)) 多线程并发 可移植性/跨平台 1. 入门知识 1.1 java体系 JavaSE:标准版 JavaEE:企业版 JavaME:微型版 1.2 JDK/JRE/JVM区别 JVM是不能独立安装的。 JRE和JDK都是可以独立安装的 层层嵌套,jvm包括jdk,jdk包括jre 阅读详情

相关推荐

【人工智能-数据集】RML2018 时域信号的时序信号和星座图的图片信号生成方式(可用于多模态特征融合)

RML2018(RadioML 2018)数据集是个广泛用于无线通信信号识别的开源数据集。它包含了多种调制方式(如OOK、QPSK、16QAM等)在不同信噪比下的信号样本。这些数据以 HDF5 格式存储,适用于大规模的数据处理和分析。数据集特点:多调制方式:涵盖24种不同的调制方式。多信噪比:包括从-20 dB到30 dB的26种信噪比。大规模样本:每种调制方式和信噪比下包含4096个样本。数据切分:将原始的 HDF5 数据集按照调制方式和信噪比切分成单个文件,便于后续处理。样本选择。

若北辰 932

基于java记账管理系统 含源码、数据库、部署教程、论文、答辩ppt条龙服务.zip

有部署问题可私信联系 ├── 【定要读我】(关于java记账管理系统).txt ├── 截图 │   ├── 用户年收入.png │   ├── 用户注册(1).png │   ├── 用户注册.png │   ├── 用户财务月统计.png │   ├── 用户财务记录信息.png │   ├── 管理员用户信息.png │   └── 首页.png ├── 数据库文件 │   └── database.sql ├── 源代码 │   └── jizhang.zip └── 论文等资料 └── 论文等资料 ├── 基于java记账管理系统.ppt └── 基于java记账管理系统毕业论文.doc ├── 截图 │   ├── 用户年收入.png │   ├── 用户注册(1).png │   ├── 用户注册.png │   ├── 用户财务月统计.png │   ├── 用户财务记录信息.png │   ├── 管理员用户信息.png │   └── 首页.png ├── 数据库文

掌握Java编程:常用工具深入解析

本文还有配套的精品资源,点击获取 简介:Java拥有庞大的工具类库,这些工具类大大提升了开发效率,并简化了各种常见编程任务。本介绍详细解析了包括集合、日期时间处理、随机数生成、输入输出操作等在内的Java常用工具。每个工具类都具有其特定的用途和优势,如 ArrayList 和 LinkedList 适合不同场景下的集合操作, Hash...

weixin_42360733的博客 1220

Java/JDK下载安装与环境配置(Windows 10 超详细的图文版教程 )

前言:对于很多初学者来说,我想可能很多人都会遇到的个问题就是Java环境变量的配置问题。自己明明就是按照度娘上的教程去步步配置的,但还是会有很多的人出现配置不成功的问题。所以今天在这里分享下windows 10 系统下安装Java的教程,希望对Java初学者能有所帮助。 . Java的下载与安装 作为初学者,要想学习Java语言,第个条件就是要让电脑上具备有Java环境,那么怎么让电...

奔三的Uncle 44万+

Java 入门 (超级详细)

Java种高级编程语言,由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运行,只需编译次,就可以在任何支持Java虚拟机(JVM)的平台上运行。Java还提供了丰富的库和框架,可以加快开发过程,提高开发效率。变量是计算机程序中用于存储数据的种数据型。它是个名称,代表了个值或个对象,可以在程序中多次使用。

qq_63519395的博客 10万+

Java 入门(完整教程)

1991 年,美国的 Sun 公司为了开发智能家电等嵌入式设备的控制系统,由詹姆斯・高斯林(James Gosling)领导的 Green 计划 团队开始了种新语言的研发。最初该语言被命名为 Oak(橡树),它是基于 C++ 开发的,吸收了 C++ 的优点并做出来扩展,同时摒弃了 C++ 中的些复杂概念,使得 Java 功能强大的同时又易于理解和使用。

野生派蒙的博客 2万+

Java基础知识 1Java入门级概述,让阿里架构师告诉你为什么要分库分表

1998年12月8日,第二代Java平台的企业版J2EE发布。 1999年4月27日,HotSpot虚拟机发布。 2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。 2009年,甲骨文公司宣布收购Sun。 2014年3月Oracle发布正式版JDK8,JDK8改进比较多,最大的改进是Lambda表达式(以及因之带来的函数式接口,很多原有都做

m0_64383736的博客 9911

Java编程动手学】Java常用工具

Java常用工具摘要 Java提供了丰富的工具类库,主要包括: String:提供字符串操作方法如charAt()、equals()、substring()等,示例展示了字符串截取、替换、大小写转换等操作。 Runtime:用于获取JVM运行环境信息,包括内存状态、处理器数量,并可通过exec()执行外部命令。 System:提供系统级操作,如获取系统属性、环境变量,以及数组复制和程序退出等功能。 Math:包含基本数学运算方法,如绝对值、幂运算、三角函数等,以及数学常数PI和E。 这些工具类简化

杰西笔记 939

Java进阶 -常用工具

对象拷贝:clone方法是protected只可以在子中被调用,在这里需要重写。Cloneable实现当前可以被克隆,没有实现当前的对象不可以被克隆。javabean(这里的clone方法需要重写需求)浅克隆与深克隆(在于引用数据型数组的更改变化)并且java中要继承Cloneable接口。该接口没有抽象方法,是个标记性接口。

小安同学的博客 503

不要再重复造轮子了!这17个Java常用工具,让生产力爆表

当然,这个例子中没有演示MdcUtil的add方法具体调的地方,我们可以在filter中执行接口方法之前,生成traceId,调用MdcUtil的add方法添加到MDC中,然后在同个请求的其他地方就能通过MdcUtil的get方法获取到该traceId。很多时候,我们会在代码中定义http的返回码,比如:接口正常返回200,异常返回500,接口找不到返回404,接口不可用返回502等。那么该请求的整个过程中,保存到MDC的ThreadLocal中的参数,也是该线程独享的,所以不会有线程安全问题。

IT枫斗者的博客 3699

[Java] 异常和常用工具

异常是程序在执行过程时发生的错误,导致程序不能正常运行,需要程序员进行处理。而在Java个异常对应java在执行过程中存在Java中没有的异常,这时候需要我们自己定义个异常。自定义异常需要继承Exception(表示是受检查异常)或者RunTimeException(表示是非受检查异常)。if(!throw new UserNameException("用户名错误");if(!throw new UserPasswordException("密码错误");

2402_83046353的博客 827

Java基础:常用工具

Java常用工具摘要: 包装:8种基本型对应包装(如Integer、Double),支持自动装箱/拆箱。数值型可互相转型,Boolean仅"true"转true。 缓存机制:Byte/Short/Integer/Long缓存-128~127,Character缓存0~127,Boolean缓存TRUE/FALSE,提升性能。 String:不可变对象,常量池复用字符串。提供查找(indexOf)、转换(split/toCharArray)、截取(substring)等方法。

weixin_74062380的博客 1091

Java)实验五 常用工具

、实验目的 了解并掌握java常用工具StringStringBufferDate的使用 二、实验内容 ⑴. 使用String的分隔spilt将字符串“Keep on going never give up”单词提取输出,单词以‘-’分隔。 效果: ⑵设计Student,的属性有:姓名、学号、出生日期、性别、所在系等。并生成学生对象数组。按照学生的姓名将学生排序输出。(使用String的compare To方法) ⑶设计个程序计算2010-05-01与系统当前

weixin_44209522的博客 948

Java常用工具Oracle分页PageResult

Java常用工具分页PageResult 、代码部分: package com.common.utils; import lombok.Data; import java.util.List; /** * @ClassName PageResult * @Description 分页工具类 */ @Data public class PageResult<T> { private int code = 0; private int page;// 当前页

weixin_42277978的博客 1532

# Java常用工具

确保你使用的依赖版本与你的Spring Boot版本兼容。Spring Boot通常会推荐些特定版本的依赖,以确保最佳的兼容性和稳定性。:如果你使用的是Spring Boot项目,建议使用Spring Boot的依赖管理来管理这些依赖的版本。作为父项目,这样可以简化依赖版本的管理。

1124

Java 常用工具StringDate、Math 及其高效使用

String的高效使用可以显著提升字符串操作的性能,尤其是在进行多次拼接时,要优先使用或。DateJava 8 新日期 API 提供了更加灵活和准确的日期时间处理方式,尽量避免直接使用Date,建议使用LocalDate或。Math提供了常见的数学方法,能够满足大多数开发需求。在性能要求较高的场景下,要注意算法优化。通过掌握这三个工具类的高效使用,你将能够在实际开发中事半功倍。不断实践这些技巧,并根据项目需求灵活运用这些工具类,能帮助你编写更简洁、更高效、更易维护的代码。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 642

JAVA最全常用工具,初学者必备

Java常用工具

weixin_43702295的博客 2062

Java开发经验——Java开发常用工具实战总结

本文介绍了Java开发中常用的工具类,包括Apache Commons Collections的SetUtils、Google Guava的Sets、Apache Commons Lang的ArrayUtils等,以及它们在集合操作、数组操作、字符串处理、JSON处理等方面的应用。文章还涉及了Optional、Money工具类、JDK流式函数等,旨在提高Java开发效率和代码质量。

庄小焱 1827

java常用工具:生成唯id

本文介绍了六种在Java中高效生成唯ID的方法,包括UUID、自定义UUID、Snowflake算法、数据库自增主键、Redis自增键和Apache Commons Lang的IdGen。根据具体的应用场景和需求,可以选择合适的方法来生成唯ID。

m0_71817461的博客 1212

VLC Player for Unity

这个Unity插件可以播放RTSP视频

上一篇: 若你一天在电脑前超过4小时一定要看
下一篇: Java通用工具类(二)-----日期处理
success_dream
博客等级 码龄21年 173粉丝 301原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值