相关时间处理类

package com.common.time;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;



/**
 * 相关时间处理类
 * @author 
 * @version 1.0,  2012/09/15
 */
public class DateUtil 
{
	/**
	 * 得到指定日期的前一天
	 * 
	 * @param specifiedDay
	 * @return
	 * @throws Exception
	 */
	public static String getSpecifiedDayBefore(String specifiedDay) 
	{
		Calendar c = Calendar.getInstance();
		Date date = null;
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		try 
		{
			
			date = simpleDateFormat.parse(specifiedDay);
		}
		catch (ParseException e)
		{
			e.printStackTrace();
		}
		c.setTime(date);
		int day = c.get(Calendar.DATE);
		c.set(Calendar.DATE, day - 1);

		String dayBefore = simpleDateFormat.format(c.getTime());
		return dayBefore;
	}

	/**
	 * 得到指定日期的后一天
	 * 
	 * @param specifiedDay
	 * @return
	 */
	public static String getSpecifiedDayAfter(String specifiedDay) 
	{
		Calendar c = Calendar.getInstance();
		Date date = null;
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		try 
		{
			date = simpleDateFormat.parse(specifiedDay);
		}
		catch (ParseException e) 
		{
			e.printStackTrace();
		}
		c.setTime(date);
		int day = c.get(Calendar.DATE);
		c.set(Calendar.DATE, day + 1);

		String dayAfter = simpleDateFormat.format(c.getTime());
		return dayAfter;
	}
	
	/**
	 * 获取指定时间的上个月的最后一天
	 * @param specifiedDay
	 * @return
	 */
	public static String getLastDayOfMonth(String specifiedDay) 
	{
		Calendar c = Calendar.getInstance();
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
		try 
		{
			date = simpleDateFormat.parse(specifiedDay); //转化为Date格式
		}
		catch (ParseException e)
		{
			e.printStackTrace();
		}
		c.setTime(date);
		
		c.add(Calendar.MONTH, -1); //获取上一个月
		
		int maxDate = c.getActualMaximum(Calendar.DAY_OF_MONTH);
	    c.set(Calendar.DAY_OF_MONTH, maxDate);
		
		String LastDayOfMonth = simpleDateFormat.format(c.getTime()); //格式化时间格式
		return LastDayOfMonth;
	}
	
	
	/**
	 * 获取指定时间的上个月的最后一天
	 * @param specifiedDay
	 * @return
	 */
	public static String getLastDayOfMonth(Date specifiedDay) 
	{
		Calendar c = Calendar.getInstance();
		c.setTime(specifiedDay);
		c.add(Calendar.MONTH, -1); //设置上一个月
		
		int maxDate = c.getActualMaximum(Calendar.DAY_OF_MONTH); //设置最后一天
	    c.set(Calendar.DAY_OF_MONTH, maxDate);
		
		SimpleDateFormat simpleDateFormat =	new SimpleDateFormat("yyyy-MM-dd");
		String LastDayOfMonth = simpleDateFormat.format(c.getTime());   //格式化时间格式
		return LastDayOfMonth;
	}
	
	/**
	 * 获取指定时间的上个月的第一天
	 * @param specifiedDay
	 * @return
	 */
	public static String getFirstDayOfMonth(String specifiedDay) 
	{
		Calendar c = Calendar.getInstance();
		SimpleDateFormat simpleDateFormat =	new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
		try 
		{
			date = simpleDateFormat.parse(specifiedDay); //转化为Date格式
		}
		catch (ParseException e)
		{
			e.printStackTrace();
		}
		c.setTime(date);
		c.add(Calendar.MONTH, -1); //设置上一个月
		
		int MiniDate = c.getActualMinimum(Calendar.DAY_OF_MONTH);
	    c.set(Calendar.DAY_OF_MONTH, MiniDate);
		
		String FirstDayOfMonth = simpleDateFormat.format(c.getTime());
		return FirstDayOfMonth ;
	}
	
	/**
	 * 获取上个月的第一天
	 * @param specifiedDay
	 * @return
	 */
	public static String getFirstDayOfMonth(Date specifiedDay) 
	{
		Calendar c = Calendar.getInstance();
		SimpleDateFormat simpleDateFormat =	new SimpleDateFormat("yyyy-MM-dd");

		c.setTime(specifiedDay);
		
		c.add(Calendar.MONTH, -1); //设置上一个月
		
		int MiniDate = c.getActualMinimum(Calendar.DAY_OF_MONTH);
	    c.set(Calendar.DAY_OF_MONTH, MiniDate);
		
		String FirstDayOfMonth = simpleDateFormat.format(c.getTime());
		return FirstDayOfMonth ;
	}
	
	
	
	/**
	 *  
	 * 方法描述:取得当前日期的上月或下月日期 ,amount=-1为上月日期,amount=1为下月日期;建立人:
	 * @param s_DateStr
	 * @param s_FormatStr
	 * @return
	 * @throws Exception
	 */
	public static String getFrontBackStrDate(String strDate,int amount) throws Exception 
	{
		if (null == strDate) 
		{
			return null;
		}
		try 
		{

			SimpleDateFormat fmt = new SimpleDateFormat("yy-MM-dd");
			Calendar c = Calendar.getInstance();
			c.setTime(fmt.parse(strDate));
			c.add(Calendar.MONTH, amount);
			return fmt.format(c.getTime());
		} 
		catch (Exception e) 
		{
			e.printStackTrace();
		}
		return "";
	}

	
	/**
	 * 返回两时间差,拼接成字符串返回
	 * @param time1
	 * @param time2
	 * @return
	 */
	public static String getTimeSub(Long time1, Long time2 )
	{
		String result = "";
		try 
		{
			Long diff = time2 - time1;   //两时间差,精确到毫秒 
			
			Long day = diff / (1000 * 60 * 60 * 24);         //以天数为单位取整
			Long hour=(diff/(60*60*1000)-day*24);            //以小时为单位取整 
			Long min=((diff/(60*1000))-day*24*60-hour*60);        //以分钟为单位取整 
			Long secone=(diff/1000-day*24*60*60-hour*60*60-min*60);
			
			result = day + "|" + hour+ "|" + min ; 
			System.out.println("---两时间差---> " +day+"天"+hour+"小时"+min+"分"+secone+"秒");
	
		} 
		catch (RuntimeException e) 
		{
			e.printStackTrace();
		}
		return result ;
	}
	
	
}
相关文章
相关标签/搜索