工具类DateHandler
package com.ctid.rachel.core.util;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import org.springframework.stereotype.Component;
/**
* 日期及时间处理工具类
* @author 肖复禹
* @date 2015-9-16
* @email xiaofuyu@ctid.com.cn
*/
@Component(value="dateHandler")
public class DateHandler {
/**
* 获取当前时间点后的第N天的日期
* @param day 日期增量
* @return 新的日期对象
*/
public static Date GetAfterDay(int day) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, day);
return cal.getTime();
}
/**
* 获取目标日期后N天的日期
* @param date 目标日期
* @param day 日期增量
* @return 新的日期对象
*/
public static Date GetAfterDay(Date date, int day) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH, day);
return cal.getTime();
}
/**
* 获取当前时间后N个月的时间
* @param month 月份增量
* @return 新的日期对象
*/
public static Date GetAfterMonth(int month) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, month);
return cal.getTime();
}
/**
* 获取目标时间后N个月的日期
* @param date 目标时间
* @param month 月份增量
* @return 新的日期对象
*/
public static Date GetAfterMonth(Date date, int month) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, month);
return cal.getTime();
}
/**
* 获取当前日期后N年的日期
* @param year 年份增量
* @return 新的日期对象
*/
public static Date GetAfterYear(int year) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, year);
return cal.getTime();
}
/**
* 获取指定日期后N年的日期
* @param date 目标日期
* @param year 年份增量
* @return 新的日期对象
*/
public static Date GetAfterYear(Date date, int year) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.YEAR, year);
return cal.getTime();
}
/**
* 获取当前时间后N分钟的时间
* @param minute 分钟增量
* @return 新的日期对象
*/
public static Date GetAfterMinute(int minute) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, minute);
return cal.getTime();
}
/**
* 获取目标时间后N分钟的时间
* @param date 目标时间
* @param second 分钟增量
* @return 新的日期对象
*/
public static Date GetAfterMinute(Date date, int minute) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MINUTE, minute);
return cal.getTime();
}
/**
* 获取当前时间后N秒的时间
* @param second 秒增量
* @return 新的日期对象
*/
public static Date GetAfterSecond(int second) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, second);
return cal.getTime();
}
/**
* 获取目标时间后N秒的时间
* @param date 目标时间
* @param second 秒增量
* @return 新的日期对象
*/
public static Date GetAfterSecond(Date date, int second) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.SECOND, second);
return cal.getTime();
}
/**
* 获取目标时间的年份
* @param date 目标时间
* @return 目标时间的年份
*/
public static int GetDateYear(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(Calendar.YEAR);
}
/**
* 获取目标时间的月份
* @param date 目标时间的月份
* @return 目标时间的月份
*/
public static int GetDateMonth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(Calendar.MONTH) + 1;
}
/**
* 获取目标时间的日期
* @param date 目标时间
* @return 目标时间的日期
*/
public static int GetDateDay(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(Calendar.DAY_OF_MONTH);
}
/**
* 获取指定日期是星期几
* @param date 目标日期
* @return 指定日期为星期几
*/
public static String GetDateDayOfWeek(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
switch(dayOfWeek) {
case 1:
return "星期日";
case 2:
return "星期一";
case 3:
return "星期二";
case 4:
return "星期三";
case 5:
return "星期四";
case 6:
return "星期五";
case 7:
return "星期六";
default:
return "";
}
}
/**
* 通过年、月、日创建新的时间对象
* @param year 年
* @param month 月
* @param day 日
* @return 新的时间对象
*/
public static Date GetDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(year, month - 1, day, 0, 0, 0);
return cal.getTime();
}
/**
* 通过年、月、日、时、分、秒创建新的时间对象
* @param year 年
* @param month 月
* @param day 日
* @param hour 时
* @param minute 分
* @param second 秒
* @return 新的时间对象
*/
public static Date GetDate(int year, int month, int day, int hour, int minute, int second) {
Calendar cal = Calendar.getInstance();
cal.set(year, month - 1, day, hour, minute, second);
return cal.getTime();
}
/**
* 获取两个时间之间的相差的天数
* @param start 起始时间
* @param end 截止时间
* @return 相差的天数
*/
public static int GetDateDiff(Date start, Date end) {
long ts = end.getTime() - start.getTime();
return (int)(ts / (24 * 60 * 60 * 1000)) ;
}
/**
* 获取两个时间之间相差的秒数
* @param start 起始时间
* @param end 截止时间
* @return 相差的秒数
*/
public static int GetDateDiffSecond(Date start, Date end) {
long ts = end.getTime() - start.getTime();
double seconds = ((double)ts / 1000);
BigDecimal b = new BigDecimal(seconds);
double d1 = b.setScale(0, BigDecimal.ROUND_HALF_UP).doubleValue();
return (int)d1;
}
}
工具类DateHandler的更多相关文章
- DateHandler日期处理工具(JSP中使用后台工具类)
1.DateHandler.java package Utils.dateHandler; import java.text.ParseException; import java.text.Simp ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Android—关于自定义对话框的工具类
开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- js常用工具类.
一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...
- Guava库介绍之实用工具类
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...
- Java程序员的日常—— Arrays工具类的使用
这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...
- .net使用正则表达式校验、匹配字符工具类
开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...
- WebUtils-网络请求工具类
网络请求工具类,大幅代码借鉴aplipay. using System; using System.Collections.Generic; using System.IO; using System ...
随机推荐
- 1:IMEI、MSISDN字段隐藏方法
1.在服务器上找到带有手机号码及IMEI的报表,下载到本地: 2.找到如下方框的表格列(例如:ID:104的报表):
- 南昌邀请赛网络赛 D.Match Stick Game(dp)
南昌邀请赛网络赛 D.Match Stick Game 题目传送门 题目就会给你一个长度为n的字符串,其中\(1<n<100\).这个字符串是一个表达式,只有加减运算符,然后输入的每一个字 ...
- Java Learning之文档注释
文档注释的结构 文档注释主体的开头是一句话,概述类型或成员的作用,应自成一体.后面可跟其他句子或段落,用以详细说明类.接口.方法或字段. 除了这些描述性的段落以外,后也可跟其他段落,数量不限,并且每段 ...
- python eval 用法
eval 功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法: eval(source[, globals[, locals]]) -> value 参数: source:一个Py ...
- etcd启用https服务
目录 cfssl相关工具下载 生成etcd所需要的ssl证书 生成ca证书 生成etcd服务端证书 生成etcd客户端证书 修改etcd集群配置文件 重启etcd集群 验证集群健康情况 关于etcd的 ...
- ROI POOLING 介绍
转自 https://blog.csdn.net/gbyy42299/article/details/80352418 Faster rcnn的整体构架: 训练的大致过程: 1.图片先缩放到MxN的尺 ...
- Java基础-字符串连接运算符String link operator
Java基础-字符串连接运算符String link operator 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 字符串链接运算符是通过“+”进行拼接的. 一.使用“+”进行字 ...
- springboot 日期转化报错
问题场景: 使用Springboot框架搭建服务,传日期参数json参数为2016-08-15 17:00:00这种格式,springboot中不能识别,将其转化为对象对应的日期属性.而是抛出异常信息 ...
- querySelectorAll 方法和 getElementsBy 系列方法的区别
本文是我在知乎上的一个回答:http://www.zhihu.com/question/24702250/answer/28695133 ————— 下面是正文 ————— 1. W3C 标准quer ...
- javascript 写了个字符串组合的情况
function log() { var i = 0, str = '', args = [].slice.call(arguments); j++; if (isRepeat(args)) { k+ ...