`
过儿oO
  • 浏览: 52913 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

计算两个时间的区间内有多少个星期几

 
阅读更多
public class TestUtil {

	public static int howManyDayOfWeek(String startDateStr, String endDateStr, int dayOfWeek) {
		int manyDayOfWeek = 0;
		Calendar calStart = getCalendar(startDateStr, "-");
		Calendar calEnd = getCalendar(endDateStr, "-");
		int balance = dayOfWeek - calStart.get(Calendar.DAY_OF_WEEK);
		//加上差值
		calStart.add(Calendar.DATE, balance);
		//如果差值是负数就多加一周
		if (balance < 0) {
			calStart.add(Calendar.WEEK_OF_MONTH, 1);
		}
		while (calStart.before(calEnd) || calStart.equals(calEnd)) {
			calStart.add(Calendar.WEEK_OF_MONTH, 1);
			manyDayOfWeek++;
		}
		return manyDayOfWeek;
	}
	
	public static void main(String[] args) {
		//1代表周日,2代表周一,以此类推
		int dayOfWeek = 1;
		System.out.println(TestUtil.howManyDayOfWeek("2009-03-01", "2009-03-31", dayOfWeek)+"个");
	}
	/**
	 * @deprecated 日期转化
	 * @param dateStr
	 * @param splitor
	 * @return
	 */
	private static Calendar getCalendar(String dateStr, String splitor) {
		Calendar cal = Calendar.getInstance();
		String[] dateArr = dateStr.split(splitor);
		cal.set(Integer.parseInt(dateArr[0]), Integer.parseInt(dateArr[1]) - 1, Integer.parseInt(dateArr[2]));
		
		return cal;
	}

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics