java得到某年某周的第一天
直接上代码
import java.util.Calendar;import java.util.Date;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * 日期工具类 * @author WXQ * */public class DateUtils {private static final Log log = LogFactory.getLog(DateUtils.class);/** * 取得当前日期是多少周 * * @param date * @return */public static int getWeekOfYear(Date date) {Calendar c = Calendar.getInstance();c.setFirstDayOfWeek(Calendar.MONDAY);/**设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值 1 调用此方法。 * 如果最少天数必须是一整个星期,则使用值 7 调用此方法。 **/c.setMinimalDaysInFirstWeek(1);c.setTime(date);return c.get(Calendar.WEEK_OF_YEAR);}/** * 得到某一年周的总数 * * @param year * @return */public static int getMaxWeekNumOfYear(int year) {Calendar c = Calendar.getInstance();c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);return getWeekOfYear(c.getTime());}/** * 得到某年某周的第一天 * * @param year * @param week * @return */public static Date getFirstDayOfWeek(int year, int week) {Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.WEEK_OF_YEAR, week);c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//设置周一c.setFirstDayOfWeek(Calendar.MONDAY);return c.getTime();}/** * 得到某年某周的最后一天 * * @param year * @param week * @return */public static Date getLastDayOfWeek(int year, int week) {Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.WEEK_OF_YEAR, week);c.setFirstDayOfWeek(Calendar.MONDAY);c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday return c.getTime();}/** * 得到某年某月的第一天 * * @param year * @param month * @return */public static Date getFirstDayOfMonth(int year, int month) {Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month-1);c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));return c.getTime();}/** * 得到某年某月的最后一天 * * @param year * @param month * @return */public static Date getLastDayOfMonth(int year, int month) {Calendar c = Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month-1);c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));return c.getTime();}/** * 得到某年某季度第一天 * * @param year * @param quarter * @return */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 * @param quarter * @return */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 * @return */public static Date getFirstDayOfYear(int year) {return getFirstDayOfQuarter(year,1);}/** * 得到某年最后一天 * * @param year * @return */public static Date getLastDayOfYear(int year) {return getLastDayOfQuarter(year,4);}public static void main(String[] args) {log.info(getFirstDayOfWeek(2013,1));log.info(getLastDayOfWeek(2013,1));log.info(getFirstDayOfMonth(2013,2));log.info(getLastDayOfMonth(2013,2));log.info(getFirstDayOfQuarter(2013,2));log.info(getLastDayOfQuarter(2013,2));log.info(getFirstDayOfYear(2013));log.info(getLastDayOfYear(2013));}}