获取某月份第N周开始日期(即星期一)

	/**
	 * <pre>
	 * 获取某月份第N周开始日期(即星期一)
	 * </pre>
	 * 
	 * @param year 年
	 * @param month 月
	 * @param weekOrder 周次
	 * @return Date 某月份第N周开始日期,即周一(包含跨月),比如2014年1月的第一周的第一天为2013-12-30,也就是说,2014
	 *         年1月的第一周也就是2013年12月的最后一周
	 */
	public static Date getFirstDayOfWeekOrder(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);

		return c.getTime();
	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值