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());
}
}
原文链接:https://www.dianjilingqu.com/480529.html