日期工具(记录一下方便日后工作使用)

  1 /**
  2  * 说明: 取日期时间工具
  3  */
  4 public class DateUtil {
  5 
  6     public DateUtil() {
  7     }
  8 
  9     /**
 10      * @see 把字符串时间转换成 Date
 11      * @return String
 12      * @throws ParseException
 13      */
 14     public static synchronized Date parseStringToDate(String myDate, String strFormat)
 15             throws ParseException {
 16         try {
 17             SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
 18             return sdf.parse(myDate);
 19         } catch (Exception e) {
 20             return null;
 21         }
 22     }
 23 
 24     public static String parseDateToString(Date date, String strFormat) {
 25         try {
 26             SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
 27             return sdf.format(date);
 28         } catch (Exception e) {
 29             return "";
 30         }
 31     }
 32 
 33     /**
 34      * 判断是否是闰年 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
 35      * 3.能被4整除同时能被100整除则不是闰年
 36      */
 37     private static synchronized boolean isLeapYear(int year) {
 38         if ((year % 400) == 0)
 39             return true;
 40         else if ((year % 4) == 0) {
 41             if ((year % 100) == 0)
 42                 return false;
 43             else
 44                 return true;
 45         } else
 46             return false;
 47     }
 48 
 49     /**
 50      * 取得指定日期的所处月份的最后一天
 51      *
 52      * @param date
 53      *            指定日期。
 54      * @return 指定日期的所处月份的最后一天
 55      */
 56     public static synchronized int getLastDayOfMonth(int year, int month) {
 57         /** */
 58         /**
 59          * 详细设计: 1.如果date在1月,则为31日 2.如果date在2月,则为28日 3.如果date在3月,则为31日
 60          * 4.如果date在4月,则为30日 5.如果date在5月,则为31日 6.如果date在6月,则为30日
 61          * 7.如果date在7月,则为31日 8.如果date在8月,则为31日 9.如果date在9月,则为30日
 62          * 10.如果date在10月,则为31日 11.如果date在11月,则为30日 12.如果date在12月,则为31日
 63          * 1.如果date在闰年的2月,则为29日
 64          */
 65         int day = 0;
 66         switch (month) {
 67         case 1:
 68             day = 31;
 69             break;
 70         case 2:
 71             day = 28;
 72             break;
 73         case 3:
 74             day = 31;
 75             break;
 76         case 4:
 77             day = 30;
 78             break;
 79         case 5:
 80             day = 31;
 81             break;
 82         case 6:
 83             day = 30;
 84             break;
 85         case 7:
 86             day = 31;
 87             break;
 88         case 8:
 89             day = 31;
 90             break;
 91         case 9:
 92             day = 30;
 93             break;
 94         case 10:
 95             day = 31;
 96             break;
 97         case 11:
 98             day = 30;
 99             break;
100         case 12:
101             day = 31;
102             break;
103         }
104         // 检查闰年
105         if (month == 2 && (isLeapYear(year))) {
106             day = 29;
107         }
108         return day;
109     }
110     
111     /**
112      * 获取指定时间是星期几
113      * @param year
114      * @param month
115      * @param day
116      * @return
117      */
118     public static int getWeek(int year,int month,int day){
119         Calendar c = Calendar.getInstance();
120         c.set(c.YEAR,year);  
121         c.set(c.MONTH,month-1);
122         c.set(c.DAY_OF_MONTH,day);
123         return c.get(Calendar.DAY_OF_WEEK) - 1;
124     }
125     
126     public static int getTotalWeek(int year,int month,int day){
127         Calendar c = Calendar.getInstance();
128         c.set(c.YEAR,year);  
129         c.set(c.MONTH,month-1);
130         c.set(c.DAY_OF_MONTH,day);
131         
132         int week = c.get(Calendar.WEEK_OF_MONTH);//获取是本月的第几周
133         return week;
134     }
135 }

 判断是否是闰年 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
 3.能被4整除同时能被100整除则不是闰年

 详细设计: 1.如果date在1月,则为31日 2.如果date在2月,则为28日 3.如果date在3月,则为31日
         4.如果date在4月,则为30日 5.如果date在5月,则为31日 6.如果date在6月,则为30日
         7.如果date在7月,则为31日 8.如果date在8月,则为31日 9.如果date在9月,则为30日
         10.如果date在10月,则为31日 11.如果date在11月,则为30日 12.如果date在12月,则为31日
         1.如果date在闰年的2月,则为29日

原文地址:https://www.cnblogs.com/itworkers/p/6409438.html