公司制度比较奇葩,每周5.5工作日,从周一上到周六中午,周六下午和周日休息,不吐槽了。
计算工作日就比较麻烦,不能通过简单的周一到周五,来判断(因为该模块会应用到请假单,扣工资。。。)
一、将假期配置表
{
private String holidayName; private Integer week; private String holidayStartDate; private String holidayEndDate; private String holidayStartTime; private String holidayEndTime; private Integer breakDown;
}
测试配置:
private List<HrHolidayCalendar> getHrHolidayCalendarList() { List<HrHolidayCalendar> s = new ArrayList<>(); s.add(getHrHolidayCalendar("周六", 7, null, null, "13:30:00", "18:00:00", 0)); s.add(getHrHolidayCalendar("周日", 1, null, null, null, null, 0)); s.add(getHrHolidayCalendar("端午节", null, "2018-06-16", "2018-06-18", null, null, 0)); s.add(getHrHolidayCalendar("中秋节", null, "2018-09-22", "2018-09-24", null, null, 0)); s.add(getHrHolidayCalendar("国庆节", null, "2018-10-01", "2018-10-07", null, null, 0)); s.add(getHrHolidayCalendar("国庆调休", null, "2018-09-29", "2018-09-30", null, null, 1)); return s; } private HrHolidayCalendar getHrHolidayCalendar(String name, Integer week, String sDate, String eDate, String sTime, String eTime, Integer bd) { HrHolidayCalendar s = new HrHolidayCalendar(); s.setHolidayName(name); s.setWeek(week); s.setHolidayStartDate(sDate); s.setHolidayEndDate(eDate); s.setHolidayStartTime(sTime); s.setHolidayEndTime(eTime); s.setBreakDown(bd); return s; }
相关推荐
Java 节假日算法是指在给定的日期范围内,计算包含假期的天数的算法。在这个算法中,我们可以看到三个类分别是 DateToDate、Vacation 和 WorkDate。下面我们将详细解释这个算法的实现过程。 首先,DateToDate 类中...
通过以上步骤,我们可以构建一个功能完善的工作日计算系统,能够精确地计算出两个日期之间的工作日数量,同时考虑到了法定节假日的影响。这个过程涉及了文件读取、日期时间处理和自定义逻辑的实现,是Java开发中的一...
这个工具类的设计通常涉及到日期处理、工作日计算以及根据公司规则进行调整等多个方面。在这个场景中,我们看到与SpringMVC、Shiro和Redis三个技术相关的标签,这表明该工具类可能是整合在基于这些技术的系统中的。 ...
4. Ford-Fulkerson算法:计算网络的最大流,解决分配问题。 五、动态规划 1. 背包问题:在容量限制下,选择物品以最大化价值。 2. 最长公共子序列:两个序列不需连续的最长相同子序列。 3. 编辑距离:衡量两个字符...
该JAVA抽奖算法主要通过定义一系列奖品的概率,并基于这些概率计算出具体的抽奖结果。算法能够处理不同数量和不同概率分布的奖品,使得整个抽奖过程更加灵活多变。下面将详细介绍该算法的工作原理、关键步骤以及实现...
在实际应用中,这个Java实现可能会提供接口供用户输入数据点和目标点,然后调用内部的克里金插值算法进行计算。为了提高效率和灵活性,代码可能还支持不同类型的克里金方法(如简单克里金、普通克里金、泛克里金等)...
1. C4.5算法:C4.5是ID3算法的升级版,由Ross Quinlan开发。它是一种决策树学习算法,通过信息增益率来选择最优特征进行划分。C4.5可以处理连续值和缺失值,适用于分类任务。在Java中,我们可以使用Weka库...
通过使用iceworkday,用户可以避免手动处理复杂的日期和工作日计算,减少人为错误,提高工作效率。此外,由于iceworkday考虑到了公共假期和自定义的非工作日,因此对于那些需要根据特定地区或组织规则调整工作日计算...
- 在Java中实现slopeone算法,需要维护用户-物品的评分矩阵,并计算每个用户对不同物品的评分差异。这个过程涉及到大量的数据处理和计算,Java的面向对象特性可以很好地支持此类任务。 2. **SVD (奇异值分解)**: ...
3DES 算法是一种基于对称加密的算法,使用双倍长密钥来计算工作密钥、PIN 密钥和 MAC 值。下面是关于 3DES 算法计算 MAC 的知识点: 1. 什么是 3DES 算法? 3DES 算法是基于 DES 算法的一种变种,使用三重 DES ...
在编程领域,Java语言因其强大的功能和广泛的应用而备受青睐,特别是在数值计算方面。...通过不断学习和实践,Java程序员可以有效地在各个领域,如金融工程、物理学模拟、数据科学等,进行高效的数值计算工作。
- 排序算法:冒泡排序、插入排序、选择排序、快速排序、归并排序等,分析它们的优劣和适用场景。 - 搜索算法:线性搜索、二分搜索、深度优先搜索(DFS)、广度优先搜索(BFS)等。 - 动态规划:通过子问题的最优...
Java作为一种广泛使用的编程语言,非常适合实现这种复杂的算法,如遗传算法(Genetic Algorithm)。遗传算法是一种模拟自然选择和遗传的全局优化方法,通过迭代过程寻找近似最优解。 在这个Java实现的遗传算法解决...
FelEngine是一款专为Java设计的轻量级计算引擎,它被设计用于处理复杂的计算任务,同时提供高效的并行和分布式计算能力。这款引擎的核心目标是简化开发者在高性能计算领域的开发工作,使得开发者能够更专注于业务...
在Java中,数值计算涵盖了广泛的算法和技术,包括基本的算术运算、复杂数学函数、线性代数、微积分、概率统计等。本主题将深入探讨这些知识点,帮助开发者掌握在Java环境中进行复杂计算的方法。 1. **基本数据类型...
1. **主算法文件**:可能命名为"BillingSystem.java",包含了核心的计费计算逻辑。 2. **测试类**:例如"BillingSystemTest.java",用于验证算法的正确性。 3. **配置文件**:可能包含费率规则和优惠策略,例如...
【标题】"java写的免疫遗传算法"涉及到的核心概念是编程语言Java和优化计算方法——免疫遗传算法。免疫遗传算法是一种融合了生物免疫机制与遗传算法的优化技术,用于解决复杂问题的全局寻优。 免疫遗传算法是计算...
在描述的链接中,你可以找到如何在Java中使用SM3算法进行哈希计算的详细步骤。 在实际应用中,通常会结合SM2和SM3算法,利用SM2进行非对称加密和数字签名,而SM3则用于生成签名的摘要,确保数据的完整性和来源的不...
从给定的文件信息来看,标题“Java算法PDF版”暗示了这是一份关于Java编程语言中的算法应用和实现的资料。尽管描述部分没有提供太多具体的信息,仅表达了分享的意愿,但我们可以根据标题和可能包含的内容来深入探讨...