/** * 计算工作日 如果两个日期之间包含节假日,就除去节假日 * * @param conn * Connection * @param start * @param end * @return int * @throws StoreException * @throws SQLException * eg. * int i = DateTools.countWorkDay(this.getJdbcTemplate().getDataSource().getConnection(), new SimpleDateFormat("yyyy-MM-dd").parse("2013-11-01"), new SimpleDateFormat("yyyy-MM-dd").parse("2013-11-04")); * */ public static int countWorkDay(Connection conn, Date start, Date end) throws SQLException { // 工作日 int workDay = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); int thisyear = start.getYear() + 1900; int nextyear = thisyear == end.getYear() ? thisyear + 1 : end.getYear() + 1900; PreparedStatement stmt = null; ResultSet rset = null; String sql = "select date(t.ATDAY) from bas_set_holidays t where t.ATYEAR = ? or t.ATYEAR = ?";// 这个表手动维护,由国务院发布放假通知后添加 stmt = conn.prepareStatement(sql); stmt.setString(1, String.valueOf(thisyear)); stmt.setString(2, String.valueOf(nextyear)); rset = stmt.executeQuery(); // 得到今年和明年的所有的假日 String holidays = ""; while (rset.next()) { holidays += rset.getString(1) + ","; } int days = DateTools.getDiffDays(start, end); Timestamp tempDate; for (int i = 0; i <= days; i++) { tempDate = new Timestamp(start.getTime() + i * 86400000); if (holidays.indexOf(sdf.format((Date) tempDate)) == -1) { workDay += 1; } } return workDay; }
CREATE TABLE "BAS_SET_HOLIDAYS" ( "RECID" TEXT(32) NOT NULL, "ATDAY" TEXT, "ATYEAR" TEXT, "WEEKDAY" TEXT, "TYPE" TEXT, PRIMARY KEY ("RECID") );
相关推荐
//计算15个工作日之后的工作日日期 Date date = workdayUtils.getWorkday(new Date(), 15); //计算两个日期之间的工作日总数 int count = workdayUtils.getWorkdayCount(new Date(), format.parse("2013-08-13"));
#### 三、计算工作日的具体实现 1. **获取某个月的所有日期**: - 可以使用上述的 `getDate` 方法获取指定月份的所有日期。 - 例如,获取2023年6月的所有日期。 2. **筛选工作日**: - 遍历获取的所有日期。 -...
在Java编程中,计算工作日是一项常见的任务,特别是在企业级应用中,如人力资源管理、项目计划和财务系统等。这个任务通常涉及到日期处理和逻辑判断,以排除周末和法定节假日。下面将详细介绍如何使用Java来实现这样...
JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...
在Java编程中,计算工作日是一项常见的需求,特别是在金融、物流和项目管理等领域。这个话题主要涉及如何在Java中处理日期和时间,并考虑到法定节假日的影响。以下是对这一主题的详细阐述: 1. **日期和时间处理库*...
java计算整年工作日(包含特殊的工作日)排除法定节假日和周末能运行
java编程计算有效工作时间的方法.java
1. **周末和节假日**:计算请假天数时,需要排除周末和法定节假日,只计算工作日。 2. **跨月请假**:如果请假跨越了月份,需要正确处理月初或月末的天数。 3. **半天假**:支持半日请假,可能需要提供计算半天假期...
计算有效工时,工作日,休息日等工具,可排除 法定假日,周末上班,周末等,内含多种测试用例,计算有效工时,工作日,休息日等工具,可排除 法定假日,周末上班,周末等,内含多种测试用例
例如,确定工作日与周末,计算每日工时,统计月度总工时,甚至可能涉及到异常情况的处理,如迟到、早退或未打卡。这些计算可能需要在数据库层面进行,也可以在Java代码中实现,然后将结果更新到数据库或展示在用户...
在提供的压缩包文件“计算工作日.xlsm”中,很可能是包含了一个使用Excel宏(VBA)编写的模板或应用程序,用于执行上述的计算工作日的功能。使用这类工具,用户可以直接输入起始和结束日期,程序会自动计算并显示...
针对标题"Java实现将每年的节假日,周末,工作日详情记录至数据库表中",我们可以详细讨论以下几个关键知识点: 1. **日期处理库**: Java中,`java.time`包提供了强大的日期时间处理功能,例如`LocalDate`类用于...
java代码先获取全年的周末周日,定义全年的法定节假日,然后根据输入的日期计算,当前日期后的工作日,也可以用于计算工作日
Java代码可能会封装这些复杂的计算逻辑在一个静态方法或者工具类中,提供方便的接口供其他部分调用。 接着,我们转向C++实现。虽然C++标准库没有像Java那样提供强大的日期时间API,但开发者可以使用第三方库,如`...
根据已知的开始日期及需要工作的天数,计算工作的截止日期。
在示例代码中,我们使用了一个名为 `holidays` 的列表来存储法定节假日,然后在计算工作日时间时,排除该列表中的日期。 计算工作日时间的公式为: 工作日时间 = 结束时间 - 开始时间 - 周末时间 - 法定节假日时间...
JAVA万年历的工作日工作日/非工作日计算天数组件。 很多场景,需要实现统计工作时长,例如:9:00-18:00 以每天工作9小时为1天,同时需要基于法定节假日(即:国务院会在每年最后一个月公布下一年度法定节假日,涉及...
本程序实现了计算给定一段时间内有多少工作日,也可以输出所有工作日的日期,节假日判断。
该工具类用于两个时间段之间节假日的计算(可获取两个时间段之间的节假日天数,小时,分钟,秒)
使用Java语言进行计算除去周六周日日期、节日假期的应该工作的工作日日数!项目实战中写的,里面有很详细的注释,不用担心看不懂!