【发布时间】:2018-08-02 04:25:12
【问题描述】:
我需要实施一个能够计算工作天数的劳动日历,当然还有自然天数。日历必须能够处理国定假日,并且这些天数必须由用户提交。 因此,如果我需要计算两天之间的差异,则计数必须忽略周六、周日和节假日。
Java类Calendar,不处理节假日和工作日,需要自己做。我想了两种可能的方法:
第一种方式:
我可以实现一个新的 Day 类,它有一个布尔值 isHoliday 来检查这是否是工作日,然后使用我需要处理/计算天数的所有方法创建一个新类.
优点:
- 易于处理
- 我可以覆盖/创建诸如 toString、toDate 等方法...
缺点:
- 重(也许?)
我对这种方法的怀疑是如何存储它。这意味着制作 365 个对象并将它们存储在 List 或 Linked List 中,这需要处理大量数据。
第二种方式:
我的第二个想法是让它更简单。创建一个Strings 或Dates 的数组,我将在其中存储假期。
示例 new ArrayList<String> freeDays = ["01/01/2019", "05/01/2019", "06/01/2019"...] 并使用新的 CalendarUtils 类或类似的东西来处理它。
优点:
- 更具可读性
- 光
缺点:
- 很难合作
对我来说,第一个选项看起来更好,但是,我不想浪费内存或使用不良做法。
哪个选项看起来更好?有没有第三种选择?
【问题讨论】:
-
还有一些其他有想法的问题,例如这两个和他们链接到的其他:stackoverflow.com/questions/24114155/…stackoverflow.com/questions/10854119/…