? import ? java.util.Calendar; ?
? import ? java.sql.Date; ?
? import ? java.text.SimpleDateFormat; ?
? import ? java.text.ParseException; ?
? ?
? /** ?
? ? * ? Utility ? to ? date ? time ?
? ? * ? @version ? 0.1 ?
? ? * ? @author ? Super ? Zhao ?
? ? */ ?
? public ? class ? DateTimeUtil ? { ?
? ?
? /** ?
? ? * ? 由java.util.Date到java.sql.Date的類型轉換 ?
? ? * ? @param ? date ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getSqlDate(java.util.Date ? date){ ?
? return ? new ? Date(date.getTime()); ?
? } ?
? ?
? public ? static ? Date ? nowDate(){ ?
? Calendar ? calendar=Calendar.getInstance(); ?
? return ? getSqlDate(calendar.getTime()); ?
? } ?
? ?
? /** ?
? ? * ? 獲得某一日期的后一天 ?
? ? * ? @param ? date ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getNextDate(Date ? date){ ?
? Calendar ? calendar=Calendar.getInstance(); ?
? calendar.setTime(date); ?
? int ? day=calendar.get(Calendar.DATE); ?
? calendar.set(Calendar.DATE,day+1); ?
? return ? getSqlDate(calendar.getTime()); ?
? } ?
? ?
? /** ?
? ? * ? 獲得某一日期的前一天 ?
? ? * ? @param ? date ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getPreviousDate(Date ? date){ ?
? Calendar ? calendar=Calendar.getInstance(); ?
? calendar.setTime(date); ?
? int ? day=calendar.get(Calendar.DATE); ?
? calendar.set(Calendar.DATE,day-1); ?
? return ? getSqlDate(calendar.getTime()); ?
? } ?
? ?
? /** ?
? ? * ? 獲得某年某月第一天的日期 ?
? ? * ? @param ? year ?
? ? * ? @param ? month ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getFirstDayOfMonth(int ? year,int ? month){ ?
? Calendar ? calendar=Calendar.getInstance(); ?
? calendar.set(Calendar.YEAR,year); ?
? calendar.set(Calendar.MONTH,month-1); ?
? calendar.set(Calendar.DATE,1); ?
? return ? getSqlDate(calendar.getTime()); ?
? } ?
? ?
? /** ?
? ? * ? 獲得某年某月最后一天的日期 ?
? ? * ? @param ? year ?
? ? * ? @param ? month ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getLastDayOfMonth(int ? year,int ? month){ ?
? Calendar ? calendar=Calendar.getInstance(); ?
? calendar.set(Calendar.YEAR,year); ?
? calendar.set(Calendar.MONTH,month); ?
? calendar.set(Calendar.DATE,1); ?
? return ? getPreviousDate(getSqlDate(calendar.getTime())); ?
? } ?
? ?
? /** ?
? ? * ? 由年月日構建java.sql.Date類型 ?
? ? * ? @param ? year ?
? ? * ? @param ? month ?
? ? * ? @param ? date ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? buildDate(int ? year,int ? month,int ? date){ ?
? Calendar ? calendar=Calendar.getInstance(); ?
? calendar.set(year,month-1,date); ?
? return ? getSqlDate(calendar.getTime()); ?
? } ?
? ?
? /** ?
? ? * ? 取得某月的天數 ?
? ? * ? @param ? year ?
? ? * ? @param ? month ?
? ? * ? @return ? int ?
? ? */ ?
? public ? static ? int ? getDayCountOfMonth(int ? year,int ? month){ ?
? Calendar ? calendar=Calendar.getInstance(); ?
? calendar.set(Calendar.YEAR,year); ?
? calendar.set(Calendar.MONTH,month); ?
? calendar.set(Calendar.DATE,0); ?
? return ? calendar.get(Calendar.DATE); ?
? } ?
? ?
? /** ?
? ? * ? 獲得某年某季度的最后一天的日期 ?
? ? * ? @param ? year ?
? ? * ? @param ? quarter ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getLastDayOfQuarter(int ? year,int ? quarter){ ?
? int ? month=0; ?
? if(quarter>4){ ?
? return ? null; ?
? }else{ ?
? month=quarter*3; ?
? } ?
? return ? getLastDayOfMonth(year,month); ?
? ?
? } ?
? ?
? /** ?
? ? * ? 獲得某年某季度的第一天的日期 ?
? ? * ? @param ? year ?
? ? * ? @param ? quarter ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getFirstDayOfQuarter(int ? year,int ? quarter){ ?
? int ? month=0; ?
? if(quarter>4){ ?
? return ? null; ?
? }else{ ?
? month=(quarter-1)*3+1; ?
? } ?
? return ? getFirstDayOfMonth(year,month); ?
? } ?
? ?
? /** ?
? ? * ? 獲得某年的第一天的日期 ?
? ? * ? @param ? year ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getFirstDayOfYear(int ? year){ ?
? return ? getFirstDayOfMonth(year,1); ?
? } ?
? ?
? /** ?
? ? * ? 獲得某年的最后一天的日期 ?
? ? * ? @param ? year ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? Date ? getLastDayOfYear(int ? year){ ?
? return ? getLastDayOfMonth(year,12); ?
? } ?
? ?
? /** ?
? ? * ? String到java.sql.Date的類型轉換 ?
? ? * ? @param ? param ?
? ? * ? @return ? Date ?
? ? */ ?
? public ? static ? java.sql.Date ? StringToDate(String ? param) ? { ?
? if(StringUtil.nullOrBlank(param)) ? { ?
? return ? null; ?
? } ? else ? { ?
? java.util.Date ? date ? =null; ?
? try ? { ?
? SimpleDateFormat ? sdf=new ? SimpleDateFormat("yyyy-MM-dd"); ?
? date ? = ? sdf.parse(param); ?
? return ? new ? Date(date.getTime()); ?
? } ?
? catch ? (ParseException ? ex) ? { ?
? //ex.printStackTrace(); ?
? return ? null; ?
? } ?
? } ?
? } ?
? }??