java 日期运算

76 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

日期运算(加指定天数、星期几、纯数字年月日等)

1,指定日期加指定天数

/**
     * 指定日期加上天数后的日期
     * @param num  为增加的天数
     * @param currdate newDate 创建时间(增加前的日期)
     * @return
     * @throws ParseException
     */
    public static String plusDay(int num, Date currdate) throws ParseException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println("现在的日期是:" + currdate);
        Calendar ca = Calendar.getInstance();
        ca.setTime(currdate);
        ca.add(Calendar.DATE, num);// num为增加的天数,可以改变的
        currdate = ca.getTime();
        String enddate = format.format(currdate);
        System.out.println("增加天数以后的日期:" + enddate);
        return enddate;
    }

2,获取指定日期是星期几

2,1星期几的数字

/**
     * 获取指定日期是星期几
     * @param date
     * @return 1-7      1就是星期一
     */
    public static int getWeekOfDateIndex(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int index = cal.get(Calendar.DAY_OF_WEEK) - 1;
        System.out.println(index + "-----index");
        return index;
    }

2,2星期几的汉字

  /**
     * 获取指定日期是星期几
     * @param date
     * @return 指定日期是星期几
     */
    public static String getWeekOfDate(Date date) {
        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
        System.out.println(w + "-----index");
        if (w < 0)
            w = 0;
        return weekDays[w];
    }

3,获取纯数字年月日

/**
     * 获取String类型的纯数字年月日   例如:20210407
     * @return
     */
    public static String getNowDateToString() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String date2 = sdf.format(date);
        System.out.println(date2);
        return date2;
    }

4,日期到下一个月的1号

/**
     * 日期到下一个月的1号
     *
     * @param date
     * @return
     */
    public static String dateGoNextOne(Date date) {
        String endDate = "";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String newDate = format.format(date);
        String[] dates = newDate.split("-");
        int a = Integer.parseInt(dates[1]);
        int year = Integer.parseInt(dates[0]);
        //当月份等于12,跨年
        if (a == 12) {
            a = 1;
            year++;
        } else {
            a++;
        }
        endDate = year + "-" + a + "-01";
        return endDate;
    }