import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 时间处理工具类
* * @author Davint * @since 5.0 * @version 1.0 */ public class TimerUtil { private SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd"); private static TimerUtil cc = new TimerUtil(); public static TimerUtil getInstance() { return cc; } public static void main(String[] args) { TimerUtil timer=TimerUtil.getInstance(); System.out.println(timer.getDaysByDate(timer.getDate("2012-04-01", "yyyy-MM-dd"))); } //根据日期得到当月天数 public int getDaysByDate(Date date) { Calendar ca=Calendar.getInstance(); ca.setTime(date); int year=ca.get(Calendar.YEAR); int month=ca.get(Calendar.MONDAY)+1; int day=0; if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { if (month==2) { day=29; } }else { if (month==2) { day=28; } } if (month==4||month==6||month==9||month==11) { day=30; } if (month==1||month==3||month==5||month==7||month==8||month==10||month==12) { day=31; } return day; } /** * 上周一的日期 * 将周一作为一周的第一天 */ public Date getLastWeekFirstDay() { Calendar ca = Calendar.getInstance(); if (ca.get(Calendar.DAY_OF_WEEK)-1==0) { ca.add(Calendar.DATE, -1 * 7*2); ca.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return ca.getTime(); } ca.add(Calendar.DATE, -1 * 7); ca.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return ca.getTime(); } // 本周一日期 public Date getThisWeekFirstDay() { Calendar ca=Calendar.getInstance(); if (ca.get(Calendar.DAY_OF_WEEK)-1==0) { ca.add(Calendar.DATE, -1); ca.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return ca.getTime(); } ca.add(Calendar.DATE, 0); ca.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return ca.getTime(); } //两个月前的第一天 public Date getLast2MonFirstDay() { Calendar cal=Calendar.getInstance(); Date now=new Date(); cal.setTime(now); cal.add(Calendar.MONTH, -1); int year=cal.get(Calendar.YEAR); int month=cal.get(Calendar.MONTH); String resultTime=year+"-"+month+"-01"; Date date =null; try { date=sp.parse(resultTime); } catch (ParseException e) { e.printStackTrace(); } return date; } // 上个月第一天日期 public Date getLastMonFirstDay() { Calendar cal=Calendar.getInstance(); Date now=new Date(); cal.setTime(now); int year=cal.get(Calendar.YEAR); int month=cal.get(Calendar.MONTH); String resultTime=year+"-"+month+"-01"; Date date =null; try { date=sp.parse(resultTime); } catch (ParseException e) { e.printStackTrace(); } return date; } // 本月第一天 public Date getThisMonFirstDay() { Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 2; cal.set(Calendar.DAY_OF_MONTH, 1); cal.add(Calendar.DAY_OF_MONTH, -1); int day = cal.get(Calendar.DAY_OF_MONTH); String months = ""; String days = ""; if (month >1) { month--; } else { year--; month = 12; } if (!(String.valueOf(month).length() > 1)) { months = "0" + month; } else { months = String.valueOf(month); } if (!(String.valueOf(day).length() > 1)) { days = "0" + day; } e