工具类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 ...
随机推荐
- 如何在 Android 程序中禁止屏幕旋转和重启Activity
禁止屏幕随手机旋转变化 有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化:在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android ...
- BZOJ 1010 [HNOI2008]toy 玩具装箱
2017.6.9:经过我的不懈努力,终于把此题A掉了,但上凸和下凸总是那么让人费解…… P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意 ...
- 题解【CF103D Time to Raid Cowavans】
Description 给一个序列 \(a\) ,\(m\) 次询问,每次询问给出 \(t, k\) .求 \(a_t + a_{t+k}+a_{t+2k}+\cdots+a_{t+pk}\) 其中 ...
- php中文网在这里给大家汇总了最热门最全面的php面试题
PHP面试题汇总 视频版: 1.<最新PHP面试视频教程> http://www.php.cn/course/876.html 2.<PHP经典算法面试题> http://ww ...
- my-innodb-heavy-4G.cnf配置文件注解
[client] ####客户端 port = 3306 ####mysql客户端连接时的默认端口号 socket = /application/mysql-5.5.32/tmp/mysql.sock ...
- mysql 对应 binlog 查看
什么是 binlog binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格 ...
- POJ - 2976 Dropping tests && 0/1 分数规划
POJ - 2976 Dropping tests 你有 \(n\) 次考试成绩, 定义考试平均成绩为 \[\frac{\sum_{i = 1}^{n} a_{i}}{\sum_{i = 1}^{n} ...
- linux网络编程框架
OSI七层模型与TCP四层模型 OSI七层模型与TCP四层模型 BS和CS服务器架构 (1)CS架构介绍(client server,客户端服务器架构)(2)BS架构介绍(broswer server ...
- 我的Pycharm,我做主
之间花了一周多的时间把Pycharm官方帮助文档翻译了一遍,一共43篇博客,累得要屎,感悟颇多. 发牢骚之前先总结点干货,这里把所有的翻译文档列成如下目录,方便大家索引: 最全Pycharm教程(1) ...
- Java事件基础
package cn.Douzi.Event; import javax.swing.*; import java.awt.*; import java.awt.event.*; public cla ...