xuliduo 发表于 2013-1-27 05:26:43

一些和时间有关的小方法

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import org.apache.commons.lang.time.DateUtils;public class DateUtil{    /** * 获得传入时间所在周的第一天时间 * @param seeddate * @return * @throws NumberFormatException * @throws ParseException */public static String getFirstDayOfWeek(String seeddate) throws NumberFormatException, ParseException{String finalstr = "";String numOfweek = DayOfWeek(seeddate);finalstr = getEndDateByDay(seeddate,1-Integer.parseInt(numOfweek),"yyyy-MM-dd");return finalstr;}/** * 获得传入时间所在周的最后一天时间 * @param seeddate * @return * @throws NumberFormatException * @throws ParseException */public static String getLastDayOfWeek(String seeddate) throws NumberFormatException, ParseException{String finalstr = "";String numOfweek = DayOfWeek(seeddate);finalstr = getEndDateByDay(seeddate,7-Integer.parseInt(numOfweek),"yyyy-MM-dd");return finalstr;}/** * 获得当前时间是所在星期的第几天(第一天为星期天) * @param seeddate * @return */public static String DayOfWeek(String seeddate){String finalstr = "";try {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar seedCalendar = Calendar.getInstance();seedCalendar.setTime(sdf.parse(seeddate));int DayOfWeek = seedCalendar.get(Calendar.DAY_OF_WEEK);return String.valueOf(DayOfWeek);} catch (Exception e) {e.printStackTrace();return null;}}    /**   * 获得传入日期所在年份   * @param seeddate   * @return   */    public static String getYearOfDate(Date seeddate)    {      String finalstr = "";      try      {            Calendar seedCalendar = Calendar.getInstance();            seedCalendar.setTime(seeddate);            finalstr = String.valueOf(seedCalendar.get(Calendar.YEAR));            return finalstr;      }      catch (Exception e)      {            e.printStackTrace();            return null;      }    }    /**   * 获得所在日期所在月份   * @param seeddate   * @return   */    public static String getMonthOfDate(Date seeddate)    {      String finalstr = "";      try      {            Calendar seedCalendar = Calendar.getInstance();            seedCalendar.setTime(seeddate);            finalstr = String.valueOf(seedCalendar.get(Calendar.MONTH) + 1);            return finalstr;      }      catch (Exception e)      {            e.printStackTrace();            return null;      }    }    /**   * 获得传入日期所在年份的月份的最后一天   * @param seeddate   * @return   * @throws ParseException   */    public static String getLastDayOfMonthOfYear(String seeddate)            throws ParseException    {      String finalstr = "";      try      {            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");            Calendar seedCalendar = Calendar.getInstance();            seedCalendar.setTime(sdf.parse(seeddate));            int MaxDayOfMonthOfYear = seedCalendar                  .getActualMaximum(Calendar.DATE);            finalstr = seedCalendar.get(Calendar.YEAR) + "-"                  + (seedCalendar.get(Calendar.MONTH) + 1) + "-"                  + MaxDayOfMonthOfYear;            return finalstr;      }      catch (Exception e)      {            e.printStackTrace();            return null;      }    }    /**   * 获得传入日期所在年份的月份的第一天   * @param seeddate   * @return   * @throws ParseException   */    public static String getFirstDayOfMonthOfYear(String seeddate)            throws ParseException    {      String finalstr = "";      try      {            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");            Calendar seedCalendar = Calendar.getInstance();            seedCalendar.setTime(sdf.parse(seeddate));            int MaxDayOfMonthOfYear = seedCalendar                  .getActualMaximum(Calendar.DATE);            finalstr = seedCalendar.get(Calendar.YEAR) + "-"                  + (seedCalendar.get(Calendar.MONTH) + 1) + "-01";            return finalstr;      }      catch (Exception e)      {            e.printStackTrace();            return null;      }    }    /**   * 获得距离开始日期之后指定月份数的日期   *      * @param Begindate   * @param monthNum   * @param dateformat   * @return   * @throws ParseException   */    public static String getEndDateByYear(String Begindate, int yearNum,            String dateformat) throws ParseException    {      String finalstr = "";      Calendar endCalender = Calendar.getInstance();      SimpleDateFormat sdf = new SimpleDateFormat(dateformat);      endCalender.setTime(sdf.parse(Begindate));      endCalender.add(Calendar.YEAR, yearNum);      Date endDate = endCalender.getTime();      finalstr = sdf.format(endDate);      return finalstr;    }    /**   * 获得距离开始日期之后指定月份数的日期   *      * @param Begindate   * @param monthNum   * @param dateformat   * @return   * @throws ParseException   */    public static String getEndDateByMonth(String Begindate, int monthNum,            String dateformat) throws ParseException    {      String finalstr = "";      Calendar endCalender = Calendar.getInstance();      SimpleDateFormat sdf = new SimpleDateFormat(dateformat);      endCalender.setTime(sdf.parse(Begindate));      endCalender.add(Calendar.MONTH, monthNum);      Date endDate = endCalender.getTime();      finalstr = sdf.format(endDate);      return finalstr;    }    /** * 获得距离开始日期之后指定年份数的日期 ** @param Begindate * @param monthNum * @param dateformat * @return * @throws ParseException */public static String getEndDateByDay(String Begindate, int dayNum,String dateformat) throws ParseException {String finalstr = "";Calendar endCalender = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat(dateformat);endCalender.setTime(sdf.parse(Begindate));endCalender.add(Calendar.DATE, dayNum);Date endDate = endCalender.getTime();finalstr = sdf.format(endDate);return finalstr;}      /**   * 获得2个日期之间的月份差   *      * @param begindate   * @param enddate   * @return   */    public static int getMonthDistance(Date begindate, Date enddate)    {      int finalnum = 0;      Calendar beginCalendar = Calendar.getInstance();      Calendar endCalendar = Calendar.getInstance();      beginCalendar.setTime(begindate);      endCalendar.setTime(enddate);      finalnum = endCalendar.get(Calendar.MONTH)                - beginCalendar.get(Calendar.MONTH);      return finalnum;    }    /**   * 获得2个日期之间的年份差   *      * @param begindate   * @param enddate   * @return   */    public static int getYearDistance(Date begindate, Date enddate)    {      int finalnum = 0;      Calendar beginCalendar = Calendar.getInstance();      Calendar endCalendar = Calendar.getInstance();      beginCalendar.setTime(begindate);      endCalendar.setTime(enddate);      if (beginCalendar.get(Calendar.YEAR) > endCalendar.get(Calendar.YEAR))      {            finalnum = beginCalendar.get(Calendar.YEAR)                  - endCalendar.get(Calendar.YEAR);      }      else      {            finalnum = endCalendar.get(Calendar.YEAR)                  - beginCalendar.get(Calendar.YEAR);      }      return finalnum;    }      /**   * 以开始时间计算结束时间   * @param day 具体天数 0:当天 1:第二天依此类推   * @return 第二天的零时   */    public static Date getEndDatetime(int day)    {    Calendar c = Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH, +day);Calendar date = DateUtils.round(c, Calendar.DAY_OF_MONTH);String datetime = StringUtil.dateToStr(new Date(date.getTimeInMillis()), "yyyy-MM-dd HH:mm:ss");return StringUtil.strToDate(datetime,"yyyy-MM-dd hh:mm:ss");    }}
页: [1]
查看完整版本: 一些和时间有关的小方法