日期工具(记录一下方便日后工作使用)
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日
好记性不如烂笔头,多多记录遇到的问题和解决办法,丰富自己的技术能力。