/** * <pre> * 获取某月份第N周结束日期(即星期日) * </pre> * * @param year 年 * @param month 月 * @param weekOrder 周次 * @return Date * 某月份第N周结束日期,即周日(包含跨月),比如2013年11月的第五周的最后一天为2013-12-01,也就是说,2013 * 年11月第五周也就是2013年12月的第一周 */ public static Date getLastDayOfWeekOrder(int year, int month, int weekOrder) { final Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month - 1); c.set(Calendar.DAY_OF_MONTH, 1); // 设为每个月的第一天(1号) int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); // 每个月的第一天为星期几 /* * 星期日:1,星期一:2,星期二:3,星期三:4,星期四:5,星期五:6,星期六:7 * 转化为我们的使用习惯:星期一:1,星期二:2,星期三:3,星期四:4,星期五:5,星期六:6,星期日:7 */ if (dayOfWeek != Calendar.SUNDAY) { dayOfWeek = dayOfWeek - 1; } else { dayOfWeek = 7; } c.add(Calendar.DAY_OF_MONTH, 1 - dayOfWeek); // 使其为每个月第一天所在周的星期一 c.add(Calendar.DAY_OF_MONTH, (weekOrder - 1) * 7 + 6); return c.getTime(); }
原文:http://blog.csdn.net/lwcumt/article/details/18408391