《Java获取各种日期的函数(方法).docx》由会员分享,可在线阅读,更多相关《Java获取各种日期的函数(方法).docx(5页珍藏版)》请在金锄头文库上搜索。
1、java日期操作(月末、周末等的日期操作)2009-11-06 13:53:59|分类: java基础知识 |标签: |字号大中小订阅 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; 5 6/* */* 7 * 8 * author zzk 9 *10 */11public class DateUtil 1213 /* */*14 * 取得某天相加(减)後的那一天15 *16 * param date1
2、7 * param num(可正可负)18 * return19 */20 public static Date getAnotherDate(Date date, int num) 21 Calendar c = Calendar.getInstance();22 c.setTime(date);23 c.add(Calendar.DAY_OF_YEAR, num);24 return c.getTime();25 2627 /* */*28 * 取得某月的的最后一天29 *30 * param year31 * param month32 * return33 */34 public st
3、atic Date getLastDayOfMonth(int year, int month) 35 Calendar cal = Calendar.getInstance();36 cal.set(Calendar.YEAR, year);/ 年37 cal.set(Calendar.MONTH, month - 1);/ 月,因为Calendar里的月是从0开始,所以要减138 cal.set(Calendar.DATE, 1);/ 日,设为一号39 cal.add(Calendar.MONTH, 1);/ 月份加一,得到下个月的一号40 cal.add(Calendar.DATE, -
4、1);/ 下一个月减一为本月最后一天41 return cal.getTime();/ 获得月末是几号42 /这个方法是我自己写的,也是获取月末的 public static Date getLastDayOfMonth(int year, int month) Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month);/我的版本是jdk1.6月不用-1 cal.set(Calendar.DATE, 0); return cal.getTime(); 4
5、4 /* */*45 * 取得某天是一年中的多少周46 *47 * param date48 * return49 */50 public static int getWeekOfYear(Date date) 51 Calendar c = new GregorianCalendar();52 c.setFirstDayOfWeek(Calendar.MONDAY);53 c.setMinimalDaysInFirstWeek(7);54 c.setTime(date);55 return c.get(Calendar.WEEK_OF_YEAR);56 5758 /* */*59 * 取得某
6、天所在周的第一天60 *61 * param date62 * return63 */64 public static Date getFirstDayOfWeek(Date date) 65 Calendar c = new GregorianCalendar();66 c.setFirstDayOfWeek(Calendar.MONDAY);67 c.setTime(date);68 c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek();69 return c.getTime();70 7172 /* */*73 * 取得某天所在周的最后一天7
7、4 *75 * param date76 * return77 */78 public static Date getLastDayOfWeek(Date date) 79 Calendar c = new GregorianCalendar();80 c.setFirstDayOfWeek(Calendar.MONDAY);81 c.setTime(date);82 c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);83 return c.getTime();84 8586 /* */*87 * 取得某一年共有多少周88 *89 *
8、 param year90 * return91 */92 public static int getMaxWeekNumOfYear(int year) 93 Calendar c = new GregorianCalendar();94 c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);95 return getWeekOfYear(c.getTime();96 9798 /* */*99 * 取得某年某周的第一天100 * 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周,2009-01-05为2009年第一周的第一
9、天101 * param year102 * param week103 * return104 */105 public static Date getFirstDayOfWeek(int year, int week) 106 Calendar calFirst = Calendar.getInstance();107 calFirst.set(year, 0, 7);108 Date firstDate = getFirstDayOfWeek(calFirst.getTime();109110 Calendar firstDateCal = Calendar.getInstance();
10、111 firstDateCal.setTime(firstDate);112113 Calendar c = new GregorianCalendar();114 c.set(Calendar.YEAR, year);115 c.set(Calendar.MONTH, Calendar.JANUARY);116 c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE);117118 Calendar cal = (GregorianCalendar) c.clone();119 cal.add(Calendar.DATE, (week - 1
11、) * 7);120 firstDate = getFirstDayOfWeek(cal.getTime();121122 return firstDate;123 124125 /* */*126 * 取得某年某周的最后一天127 * 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周, 2009-01-04为 2008年最后一周的最后一天128 * param year129 * param week130 * return131 */132 public static Date getLastDayOfWeek(int year, int week) 133 C
12、alendar calLast = Calendar.getInstance();134 calLast.set(year, 0, 7);135 Date firstDate = getLastDayOfWeek(calLast.getTime();136137 Calendar firstDateCal = Calendar.getInstance();138 firstDateCal.setTime(firstDate);139140 Calendar c = new GregorianCalendar();141 c.set(Calendar.YEAR, year);142 c.set(Calendar.MONTH, Calendar.JANUARY);143 c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE);144145 Calendar cal = (GregorianCalendar) c.clone();146 cal.add(Calendar.DATE, (week - 1) * 7);147 Date las