可有什么办法取一个日期区间的工作日天数 (去掉节假日、周末)?

如题

MengCY
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 17

串休都是国家定的,要不年初统一处理一次,要不看看有没有接口处理。

4年前 评论
CarbonPeriod::macro('countWeekdays', static function () {
    return self::this()->filter('isWeekday')->count();
});
echo CarbonPeriod::create('2017-11-01', '2017-11-30')->countWeekdays();  // 22
echo CarbonPeriod::create('2017-12-01', '2017-12-31')->countWeekdays();  // 21

Carbon 是最好的选择。

4年前 评论

一楼说的对。

4年前 评论
liuhaiqiang999 4年前

节假日是分地区的 内地的节日虽然可以提前确定,但是调休得看每年公布的具体日期,你只能在年末手动处理来年的节假日调休来确定你说的工作日天数了 跨年的时间段就不好处理了

4年前 评论
liuhaiqiang999 4年前
MengCY

@qf-Z 周末没有问题,主要是法定节假日比较麻烦

4年前 评论
qf-Z 4年前
MengCY

@g-sabo 估计只能自己手动写了。

4年前 评论

用carbon + 手动填写节公休日

4年前 评论

看看那些日历有没有接口什么的,日历节假日更新又快又准确。

4年前 评论

如果没有第三方接口的情况下,,,

是否,,,,可以搞一个表,存储 日期 - [放假 or 调休] 这样的数据,,,然后先用 Carbon 那个获取去掉周六日的天数,然后在数据库中查出这个区间里,哪些些日子是放假,哪些周六日又上班,,,加减一下

4年前 评论

@MengCY 我找了下 貌似没有相应的api

4年前 评论
$beginDate
$endDate
$holidays = []
$count
for ([$beginDate -> $endDate] as $date) {
      if ($date is not weekDay) {
           continue;
      }
      if ($date in $holidays) {
          continue;
      }
      $count++
}
4年前 评论

工作日在线计算
我写的写的小工具 已经支持2020最新节假日

@MengCY @g-sabo

4年前 评论
g-sabo 4年前
小李世界 4年前
小李世界 4年前
萧潇 (作者) 4年前
xinjiaxun123 3年前
月光

可以找个能返回节假日日期的 API,再从你的时间段中判断

4年前 评论
MengCY

@索德罗斯 没,都不好用,我自己写了一个。

4年前 评论
Summer

不知道是什么商业逻辑,国家规定的节假日 还有 『部分公民放假的节日及纪念日』:

部分公民放假的节日及纪念日:妇女节(3月8日),妇女放假半天;青年节(5月4日),14岁以上的青年放假半天;儿童节(6月1日),不满14周岁的少年儿童放假1天;中国人民解放军建军纪念日(8月1日),现役军人放假半天。少数民族习惯的节日由各少数民族聚居地区的地方人民政府按照各该民族习惯,规定放假日期。

4年前 评论
MengCY

@Summer 某个Object,在N天(仅去掉gov规定的寻常节假日、调休还有周末)没有操作就进行一些其他操作。我自己写了一个,不过每年都要维护日期,要是忘了就砸蛋了。 :joy:

4年前 评论

兄弟,很难实现,每年11月下旬国务院会公布来年的法定节假日,但这只是全国性的,有些地区还有其他假的。如举办大型活动,少数民族的新年。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!