获取俩个时间段的最终结束时间(去掉周六日的有效结束时间)

/**
	 * 获取俩个时间段的最终结束时间(去掉周六日的有效结束时间)
	 * 
	 * @param startTime 开始时间
	 * @param endTime  结束时间
	 * @return
	 */
	public static Date validEndTime(Date startTime, Date endTime) {
		// 中间有多少天是周末
		int leaveDays = 0;
		// 开始日期
		Calendar startCal = Calendar.getInstance();
		// 结束时间
		Calendar endCal = Calendar.getInstance();
		// 从startTime开始循环遍历每个日期,若该日期不是周六日则天数+1
		while (startTime.compareTo(endTime) != 1) {
			startCal.setTime(startTime);
			endCal.setTime(endTime);
			// 判断是否为周六日
			int week = startCal.get(Calendar.DAY_OF_WEEK) - 1;
			if (week == 0 || week == 6) {// 0为周日,6为周六
				// 跳出循环进入下一个日期
				startCal.add(Calendar.DAY_OF_MONTH, +1);
				// 结束时间+1
				endCal.add(Calendar.DAY_OF_MONTH, +1);
				endTime = endCal.getTime();
				startTime = startCal.getTime();
				// 是节假日或者周末,天数+1
				leaveDays = leaveDays + 1;
				continue;
			}
			// 日期往后加一天
			startCal.add(Calendar.DAY_OF_MONTH, +1);
			startTime = startCal.getTime();
		}
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
		System.out.println("有效结束时间:" + df.format(endTime));
		System.out.println("周末天数:" + leaveDays + "天");
		return endTime;
	}

节假日接口:http://api.goseek.cn/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值