项目经验:自己写的根据时段得到日期的CalendarUtil
2014-07-21 17:58
225 查看
在做水质评价统计的时候,根据前台页面返回的最近一天、最近一星期、最近一月、最近一年计算出日期。
统计时段select控件:
CalendarUtil类代码:
统计时段select控件:
CalendarUtil类代码:
package com.richway.waterevaluate.util; import java.util.Calendar; import java.util.Date; /** * @author lej *时间处理工具 * 2014-5-30下午1:43:02 */ public class CalendarUtil { /** * 得到当天的0:0:0:000 */ public static Date getTodayStart(){ Calendar calendar = Calendar.getInstance(); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 得到当天第二天的0:0:0:000 */ public static Date getTomorrowStart(){ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, 1); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 得到当天所在的星期的第一天的0:0:0:000 */ public static Date getThisWeekStart(){ Calendar calendar = Calendar.getInstance(); // 直接取周一 calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 得到当天所在的星期的下一个星期第一天的0:0:0:000 */ public static Date getNextWeekStart(){ Calendar calendar = Calendar.getInstance(); // 取下周 calendar.add(Calendar.WEEK_OF_YEAR, 1); // 取下周一 calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 得到当天所在的月份的第一天的0:0:0:000 */ public static Date getThisMonthStart(){ Calendar calendar = Calendar.getInstance(); // 得到当天是这月的第几天 int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); // 减去dayOfMonth,得到第一天的日期,因为Calendar用0代表每月的第一天,所以要减一 calendar.add(Calendar.DAY_OF_MONTH, -(dayOfMonth-1)); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 得到当天所在的月份的下一个月第一天的0:0:0:000 */ public static Date getNextMonthStart(){ Calendar calendar = Calendar.getInstance(); // 得到当天是这月的第几天 int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); // 减去dayOfMonth,得到第一天的日期,因为Calendar用0代表每月的第一天,所以要减一 calendar.add(Calendar.DAY_OF_MONTH, -(dayOfMonth-1)); //得到下一个月 calendar.add(Calendar.MONTH, 1); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 得到当天所在的年份的第一天的0:0:0:000 */ public static Date getThisYearStart(){ Calendar calendar = Calendar.getInstance(); // 得到当天是今年的第几天 int dayOfYEAR = calendar.get(Calendar.DAY_OF_YEAR); // 减去dayOfYEAR,得到第一天的日期,因为Calendar用0代表每月的第一天,所以要减一 calendar.add(Calendar.DAY_OF_YEAR, -(dayOfYEAR-1)); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 得到当天所在的年份的下一年第一天的0:0:0:000 */ public static Date getNextYearStart(){ Calendar calendar = Calendar.getInstance(); // 得到当天是今年的第几天 int dayOfYEAR = calendar.get(Calendar.DAY_OF_YEAR); // 减去dayOfYEAR,得到第一天的日期,因为Calendar用0代表每月的第一天,所以要减一 calendar.add(Calendar.DAY_OF_YEAR, -(dayOfYEAR-1)); //得到下一个年 calendar.add(Calendar.YEAR, 1); //将小时至0 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至0 calendar.set(Calendar.MINUTE, 0); //将秒至0 calendar.set(Calendar.SECOND,0); //将毫秒至0 calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 得到两个时间对应年份的间隔 */ public static int getYearsBetween(Date startTime,Date endTime){ Calendar calendar = Calendar.getInstance(); calendar.setTime(startTime); int year1 = calendar.get(Calendar.YEAR); //获取年 calendar.setTime(endTime); int year2 = calendar.get(Calendar.YEAR); //获取年 int between = year2-year1; return between; } // 当天开始Fri May 30 00:00:00 CST 2014 // 第二天开始Sat May 31 00:00:00 CST 2014 // 星期开始Mon May 26 00:00:00 CST 2014 // 下星期开始Mon Jun 02 00:00:00 CST 2014 // 当月开始Thu May 01 00:00:00 CST 2014 // 下月开始Sun Jun 01 00:00:00 CST 2014 // 当年开始Wed Jan 01 00:00:00 CST 2014 // 下年开始Thu Jan 01 00:00:00 CST 2015 }
相关文章推荐
- 项目经验:js实现根据时段获取时间段
- 自己写的日期相加函数(C语言)_根据ORACLE数据库的方式改进版
- JS日期:根据出生日期 得到周岁年龄
- 通过自己的项目实际经验,阐述为什么“恶心玩技术”?玩.NET的B/S的教训(四)
- 根据我的经验谈一个项目的开发过程及成员组成
- 根据日期(年月日)得到星期几的方法
- 根据自己平时的经验写的针对SQLSERVER操作的通用类库
- 360与腾讯之争,作为程序员,是愿意自己的项目进入市场得到些成功就被腾讯抄袭,还是软件刚一发布出去,就被360查杀?
- 通过自己的项目实际经验,阐述为什么“恶心玩技术”?玩Java开源B/S的教训(三)
- 通过自己的项目实际经验,阐述为什么“恶心玩技术”?玩Java开源B/S的教训(三)
- 根据一年的周数得到日期
- 最近的几个项目中得到的经验
- 根据自己多年来在招聘方面的经验,提供关于一些关于外企如何招聘的信息。
- C#中如何根据身份证号码得到出生日期和性别
- 通过自己的项目实际经验,阐述为什么“恶心玩技术”?玩.NET的B/S的教训(四)
- JS日期:根据出生日期 得到周岁年龄
- 结合自己的经验谈一谈关于项目管理的一点感想 推荐
- EXTJS项目实战经验总结一:日期组件的change事件:
- 根据某个日期得到该月的所有日期
- 360与腾讯之争,作为程序员,是愿意自己的项目进入市场得到些成功就被腾讯抄袭,还是软件刚一发布出去,就被360查杀?