读书人

Java中对日期的惯用处理(转)

发布时间: 2012-10-06 17:34:01 作者: rapoo

Java中对日期的常用处理(转)

import java.text.SimpleDateFormat;   import java.util.Calendar;   import java.util.Date;   import java.util.GregorianCalendar;     /** *//**   *    * @author zzk   *   */  public class DateUtil {         /** *//**       * 取得某天相加(减)後的那一天       *        * @param date       * @param num(可正可负)       * @return       */      public static Date getAnotherDate(Date date, int num) {           Calendar c = Calendar.getInstance();           c.setTime(date);           c.add(Calendar.DAY_OF_YEAR, num);           return c.getTime();       }         /** *//**       * 取得某月的的最后一天       *        * @param year       * @param month       * @return       */      public static Date getLastDayOfMonth(int year, int month) {           Calendar cal = Calendar.getInstance();           cal.set(Calendar.YEAR, year);// 年           cal.set(Calendar.MONTH, month - 1);// 月,因为Calendar里的月是从0开始,所以要减1           //设置该月实际的最后一天           cal.set(Calendar.DATE,cal.getActualMaximum(Calendar.DATE));           return cal.getTime();// 获得月末是几号        }            /** *//**        * 取得某天是一年中的多少周       *        * @param date       * @return       */      public static int getWeekOfYear(Date date) {           Calendar c = new GregorianCalendar();           c.setFirstDayOfWeek(Calendar.MONDAY);           c.setMinimalDaysInFirstWeek(7);           c.setTime(date);           return c.get(Calendar.WEEK_OF_YEAR);       }         /** *//**       * 取得某天所在周的第一天       *        * @param date       * @return       */      public static Date getFirstDayOfWeek(Date date) {           Calendar c = new GregorianCalendar();           c.setFirstDayOfWeek(Calendar.MONDAY);           c.setTime(date);           c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());           return c.getTime();       }         /** *//**       * 取得某天所在周的最后一天       *        * @param date       * @return       */      public static Date getLastDayOfWeek(Date date) {           Calendar c = new GregorianCalendar();           c.setFirstDayOfWeek(Calendar.MONDAY);           c.setTime(date);           c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);           return c.getTime();       }         /** *//**       * 取得某一年共有多少周       *        * @param year       * @return       */      public static int getMaxWeekNumOfYear(int year) {           Calendar c = new GregorianCalendar();           c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);           return getWeekOfYear(c.getTime());       }              /** *//**       * 取得某年某周的第一天       * 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周,2009-01-05为2009年第一周的第一天       * @param year       * @param week       * @return       */      public static Date getFirstDayOfWeek(int year, int week) {           Calendar calFirst = Calendar.getInstance();           calFirst.set(year, 0, 7);           Date firstDate = getFirstDayOfWeek(calFirst.getTime());             Calendar firstDateCal = Calendar.getInstance();           firstDateCal.setTime(firstDate);             Calendar c = new GregorianCalendar();           c.set(Calendar.YEAR, year);           c.set(Calendar.MONTH, Calendar.JANUARY);           c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));             Calendar cal = (GregorianCalendar) c.clone();           cal.add(Calendar.DATE, (week - 1) * 7);           firstDate = getFirstDayOfWeek(cal.getTime());             return firstDate;       }         /** *//**       * 取得某年某周的最后一天       * 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周,2009-01-04为2008年最后一周的最后一天       * @param year       * @param week       * @return       */      public static Date getLastDayOfWeek(int year, int week) {           Calendar calLast = Calendar.getInstance();           calLast.set(year, 0, 7);           Date firstDate = getLastDayOfWeek(calLast.getTime());             Calendar firstDateCal = Calendar.getInstance();          firstDateCal.setTime(firstDate);             Calendar c = new GregorianCalendar();           c.set(Calendar.YEAR, year);           c.set(Calendar.MONTH, Calendar.JANUARY);           c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));             Calendar cal = (GregorianCalendar) c.clone();           cal.add(Calendar.DATE, (week - 1) * 7);           Date lastDate = getLastDayOfWeek(cal.getTime());                      return lastDate;       }   }  

读书人网 >软件架构设计

热点推荐