NC自建工具类——日期计算 DateUtils

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDateTime;

//常用日期计算方法
public class DateUtils {

    // 将年月日转换为日期
    public static UFDate getDate(int year, int month, int day) {
        Calendar date = Calendar.getInstance();
        date.set(Calendar.YEAR, year);// 年
        date.set(Calendar.MONTH, month - 1);// 月 注意是从0开始的,所以月份要减1
        date.set(Calendar.DAY_OF_MONTH, day);// 日
        return new UFDate(date.getTimeInMillis());
    }

    public static UFDateTime getDateTime(int year, int month, int day,
            int hour, int minute, int scond) {
        Calendar date = Calendar.getInstance();
        date.set(Calendar.YEAR, year);
        date.set(Calendar.MONTH, month - 1);
        date.set(Calendar.DAY_OF_MONTH, day);
        date.set(Calendar.HOUR_OF_DAY, hour);// HOUR_OF_DAY 24小时制的时
        date.set(Calendar.MINUTE, minute);// 分
        date.set(Calendar.SECOND, scond);// 秒
        return new UFDateTime(date.getTimeInMillis());
    }

    public static UFDateTime getDateTime(int year, int month, int day,
            int am_pm, int hour, int minute, int scond) {
        Calendar date = Calendar.getInstance();
        date.set(Calendar.YEAR, year);
        date.set(Calendar.MONTH, month - 1);
        date.set(Calendar.DAY_OF_MONTH, day);
        date.set(Calendar.AM_PM, am_pm);// 0=上午 1=下午
        date.set(Calendar.HOUR, hour);// 12小时值
        // date.set(Calendar.HOUR_OF_DAY, hour);// HOUR_OF_DAY 24小时制的时
        date.set(Calendar.MINUTE, minute);// 分
        date.set(Calendar.SECOND, scond);// 秒
        return new UFDateTime(date.getTimeInMillis());
    }

    // 获取当前月一号时间
    public static UFDate getMonthStartDate(UFDate srcdate) {
        Calendar date = Calendar.getInstance();
        date.setTime(srcdate.toDate());
        date.set(Calendar.DAY_OF_MONTH, 1);
        return new UFDate(date.getTimeInMillis()).asBegin();
    }

    // 返回当前是星期几,0-6,周日——周六
    public static int geDayOfWeek(UFDate srcdate) {
        Calendar date = Calendar.getInstance();
        date.setTime(srcdate.toDate());
        return date.get(Calendar.DAY_OF_WEEK);
    }

    // 获取当前日期所在的第一天(周日)的日期
    public static UFDate getWeekStartDate(UFDate srcdate, int weekNum) {
        Calendar date = Calendar.getInstance();
        date.setTime(srcdate.toDate());
        int dayOfweek = date.get(Calendar.DAY_OF_WEEK);
        date.add(Calendar.DATE, dayOfweek * -1);
        return new UFDate(date.getTimeInMillis()).asBegin();
    }

    // 获取当前月最后一天(周六)时间
    public static UFDate getWeekEndDate(UFDate srcdate) {
        Calendar date = Calendar.getInstance();
        date.setTime(srcdate.toDate());
        int dayOfweek = date.get(Calendar.DAY_OF_WEEK);
        date.add(Calendar.DATE, 6 - dayOfweek);
        return new UFDate(date.getTimeInMillis()).asEnd();
    }

    // 获取当前年一号时间
    public static UFDate getYearStartDate(UFDate srcdate) {
        Calendar date = Calendar.getInstance();
        date.set(Calendar.YEAR, srcdate.getYear());
        date.set(Calendar.MONTH, 0);// 月 注意月份是从0开始计算的,所以这里的1,在格式化后等于0
        date.set(Calendar.DAY_OF_MONTH, 1);
        return new UFDate(date.getTimeInMillis()).asBegin();
    }

    /*
     * 日期计算
     */

    // 后N月日期,负数表示以前
    // type:Calendar.YEAR,Calendar.MONTH,Calendar.Date等
    public static UFDate getAfterDate(UFDate srcdate, int type, int nextnum) {
        Calendar date = Calendar.getInstance();
        date.setTime(srcdate.toDate());
        date.add(type, nextnum);
        return new UFDate(date.getTimeInMillis());
    }

    public static UFDate getBeforDate(UFDate srcdate, int type, int nextnum) {
        Calendar date = Calendar.getInstance();
        date.setTime(srcdate.toDate());
        date.add(type, -nextnum);
        return new UFDate(date.getTimeInMillis());
    }

    // 后N年日期,负数表示以前
    public static UFDate getAfterYearDate(UFDate srcdate, int nextnum) {
        return getAfterDate(srcdate, Calendar.YEAR, nextnum);
    }

    // 后N月日期,负数表示以前
    public static UFDate getAfterMonthDate(UFDate srcdate, int nextnum) {
        return getAfterDate(srcdate, Calendar.MONTH, nextnum);
    }

    // 后N在日期,负数表示以前
    public static UFDate getAfterDayDate(UFDate srcdate, int nextnum) {
        return getAfterDate(srcdate, Calendar.DATE, nextnum);
    }

    // 后N月日期,负数表示以前
    public static UFDate getAfterHourDate(UFDate srcdate, int nextnum) {
        return getAfterDate(srcdate, Calendar.HOUR, nextnum);
    }

    // 前N年日期,负数表示以前
    public static UFDate getBeforYearDate(UFDate srcdate, int prevnum) {
        return getAfterDate(srcdate, Calendar.YEAR, -prevnum);
    }

    // 前N月日期,负数表示以前
    public static UFDate getBeforMonthDate(UFDate srcdate, int prevnum) {
        return getAfterDate(srcdate, Calendar.MONTH, -prevnum);
    }

    /*
     * 输出
     */
    // 格式化日期输出
    public static String getDateFormat(Date srcdate, String format) {
        if (format == null)
            format = "yyyy-MM-dd HH:mm:ss";
        Calendar date = Calendar.getInstance();
        date.setTime(srcdate);
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date.getTimeInMillis());
    }

}

 

posted @ 2022-08-12 11:09  山䂥进城  阅读(445)  评论(0)    收藏  举报