判断两个日期之间除去周末和规定节假日剩余的天数(精确度为半天)

本文介绍了如何在Java中计算两个日期间扣除周末和指定节假日后的实际请假天数,以0.5天为计算单位。在请假申请中,允许用户选择日期及上下午。节假日数据存储在数据库中,并使用SSH框架和Oracle数据库进行连接。提供的代码示例展示了详细的判断逻辑。
摘要由CSDN通过智能技术生成

这两天在写一个项目,考勤系统,写到请假的一块,需要判断请假的天数,在网上搜也没有合意的,于是就自己写了个。

请假天数以0.5天为单位,不足0.5天的按0.5天算,在请假页面选择的时候,只能选择日期和上下午。

规定的节假日是存在数据库中的,我这里用的是ssh框架,链接的oracle

以下是代码:

//得到两个日期之间的所有天的日期集合
	private List<String> getDays(String startDate, String endDate)
			throws ParseException {
		Calendar startCalendar = Calendar.getInstance();
		Calendar endCalendar = Calendar.getInstance();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		Date startDat = df.parse(startDate);
		startCalendar.setTime(startDat);
		Date endDat = df.parse(endDate);
		endCalendar.setTime(endDat);
		List<Calendar> list = new ArrayList<Calendar>();
		List<String> listStr = new ArrayList<String>();
		while (true) {
			if (startCalendar.getTimeInMillis() <= endCalendar.getTimeInMillis()) {
				Calendar cale
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值