【发布时间】:2021-11-04 06:30:22
【问题描述】:
假设我有当天、第二天和前一天。我想写一个方法,通过对它们进行逻辑运算来找到每月的第一个工作日。比如 2021 年 11 月的第一个工作日从 4 号开始,因为 3 号因为节假日没有工作日。简而言之,我们需要编写一个程序,将非工作日考虑在内,找出每个月的第一个工作日。
【问题讨论】:
-
第一个工作日是什么意思?比如非节假日?包括公共假期?你有没有尝试过?
-
例如,我想写一个程序,找到每个月的第一个工作日。假设 11 月的第一个工作日从 3 点开始,因为第 1 天和第 2 天不是工作日,所以 3 重合。
-
我猜你需要一个假期的 api
-
你怎么知道什么是工作日,什么不是?按星期几?例如,一些国家/地区从星期日开始工作(例如美国),一些国家/地区从星期一开始工作(俄罗斯),一些国家从不在星期六工作(以色列)...根据您所在国家/地区特定的假期列表?
-
我猜在 java 语言中没有内部方法来判断一个月中的哪一天是第一天。这取决于国家和年份 - 受法律监管 - 因此即使作为 Locale 的一部分将其放入 java 本身也是没有意义的。它在俄罗斯被称为“производственный календарь” - 工厂日历(在俄罗斯,我们在 Consultant Plus 中查看此日历)。您需要使用一些第三方 JAR 作为依赖项,或者通过 HTTP 调用一些服务器,将您的国家和月份和年份作为参数发送到您的请求中(我需要付费订阅)。