NC 常用工具类——日期计算 DateUtils

354 篇文章 100 订阅
该文章介绍了NC框架中用于日期计算的DateUtils工具类,包括将年月日转换为日期、获取当前月第一天和最后一天、获取指定日期的前后日期以及格式化日期输出等方法。此外,还提供了处理AM/PM的日期时间转换功能。
摘要由CSDN通过智能技术生成

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值