`
capp0139
  • 浏览: 168346 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

java中计算工作日

 
阅读更多
/**
	 * 计算工作日 如果两个日期之间包含节假日,就除去节假日
	 * 
	 * @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")
);

 

分享到:
评论

相关推荐

    Java 工作日计算

    //计算15个工作日之后的工作日日期 Date date = workdayUtils.getWorkday(new Date(), 15); //计算两个日期之间的工作日总数 int count = workdayUtils.getWorkdayCount(new Date(), format.parse("2013-08-13"));

    java中计算某个月的工作日总共几天

    #### 三、计算工作日的具体实现 1. **获取某个月的所有日期**: - 可以使用上述的 `getDate` 方法获取指定月份的所有日期。 - 例如,获取2023年6月的所有日期。 2. **筛选工作日**: - 遍历获取的所有日期。 -...

    Java计算工作日

    在Java编程中,计算工作日是一项常见的任务,特别是在企业级应用中,如人力资源管理、项目计划和财务系统等。这个任务通常涉及到日期处理和逻辑判断,以排除周末和法定节假日。下面将详细介绍如何使用Java来实现这样...

    JAVA时间工具类(计算法定工作日工时等)

    JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...

    java工作日计算(去除法定假日)

    在Java编程中,计算工作日是一项常见的需求,特别是在金融、物流和项目管理等领域。这个话题主要涉及如何在Java中处理日期和时间,并考虑到法定节假日的影响。以下是对这一主题的详细阐述: 1. **日期和时间处理库*...

    java计算整年工作日(包含特殊的工作日)排除法定节假日和周末能运行

    java计算整年工作日(包含特殊的工作日)排除法定节假日和周末能运行

    java编程计算有效工作时间的方法.java

    java编程计算有效工作时间的方法.java

    java 请假天数计算工具类

    1. **周末和节假日**:计算请假天数时,需要排除周末和法定节假日,只计算工作日。 2. **跨月请假**:如果请假跨越了月份,需要正确处理月初或月末的天数。 3. **半天假**:支持半日请假,可能需要提供计算半天假期...

    java计算有效工时,工作日,休息日等工具,可排除 法定假日,周末上班,周末等,

    计算有效工时,工作日,休息日等工具,可排除 法定假日,周末上班,周末等,内含多种测试用例,计算有效工时,工作日,休息日等工具,可排除 法定假日,周末上班,周末等,内含多种测试用例

    java swing实现考勤工时计算工具

    例如,确定工作日与周末,计算每日工时,统计月度总工时,甚至可能涉及到异常情况的处理,如迟到、早退或未打卡。这些计算可能需要在数据库层面进行,也可以在Java代码中实现,然后将结果更新到数据库或展示在用户...

    计算两个工作日之间的工作日

    在提供的压缩包文件“计算工作日.xlsm”中,很可能是包含了一个使用Excel宏(VBA)编写的模板或应用程序,用于执行上述的计算工作日的功能。使用这类工具,用户可以直接输入起始和结束日期,程序会自动计算并显示...

    Java 实现将每年的节假日,周末,工作日详情记录至数据库表中

    针对标题"Java实现将每年的节假日,周末,工作日详情记录至数据库表中",我们可以详细讨论以下几个关键知识点: 1. **日期处理库**: Java中,`java.time`包提供了强大的日期时间处理功能,例如`LocalDate`类用于...

    java计算全年周日 及过滤法定节假日

    java代码先获取全年的周末周日,定义全年的法定节假日,然后根据输入的日期计算,当前日期后的工作日,也可以用于计算工作日

    java 日出日落时间计算

    Java代码可能会封装这些复杂的计算逻辑在一个静态方法或者工具类中,提供方便的接口供其他部分调用。 接着,我们转向C++实现。虽然C++标准库没有像Java那样提供强大的日期时间API,但开发者可以使用第三方库,如`...

    工作日计算的JAVA实现

    根据已知的开始日期及需要工作的天数,计算工作的截止日期。

    两个日期间计算 除去节假日 非工作时间

    在示例代码中,我们使用了一个名为 `holidays` 的列表来存储法定节假日,然后在计算工作日时间时,排除该列表中的日期。 计算工作日时间的公式为: 工作日时间 = 结束时间 - 开始时间 - 周末时间 - 法定节假日时间...

    JAVA 基于万年历的 工作日/非工作日计算天数组件

    JAVA万年历的工作日工作日/非工作日计算天数组件。 很多场景,需要实现统计工作时长,例如:9:00-18:00 以每天工作9小时为1天,同时需要基于法定节假日(即:国务院会在每年最后一个月公布下一年度法定节假日,涉及...

    java计算工作日节假日小程序

    本程序实现了计算给定一段时间内有多少工作日,也可以输出所有工作日的日期,节假日判断。

    使用Java的Calendar类计算两段时间之间的工作日的天/小时/分钟/秒数

    该工具类用于两个时间段之间节假日的计算(可获取两个时间段之间的节假日天数,小时,分钟,秒)

    工作日工具类.java

    使用Java语言进行计算除去周六周日日期、节日假期的应该工作的工作日日数!项目实战中写的,里面有很详细的注释,不用担心看不懂!

Global site tag (gtag.js) - Google Analytics