You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby代码修改求助:筛选入职91-97天员工输出休假提醒

Ruby代码调整方案

现有代码存在两处不符合需求的问题:

  • 未过滤入职天数,会输出所有录入的员工
  • format方法传入了冗余参数,和输出占位符不匹配

修正后完整代码

require 'date'

today = Date.today

hires = [
  { name: 'Jerry', date: Date.new(2021, 8, 15) },
  { name: 'Berry', date: Date.new(2021, 8, 13) },
  { name: 'Jack', date: Date.new(2021, 8, 19) }
]

def report(hires, today)
  # 先筛选入职天数在91-97天区间的员工
  eligible_hires = hires.select do |hire|
    employed_days = (today - hire[:date]).to_i
    employed_days.between?(91, 97)
  end
  # 遍历符合条件的员工输出提醒
  eligible_hires.each do |hire|
    puts format('%s, needs vacation', hire[:name])
  end
end

report(hires, today)

改动说明

  1. 新增筛选逻辑:调用select方法遍历员工列表,计算每个员工的入职天数,通过between?方法判断是否落在91到97的范围内,只保留符合条件的员工
  2. 优化输出逻辑:删除了format方法中冗余的入职日期、天数参数,仅保留姓名占位符,输出格式和需求完全匹配

验证提示

如果要快速验证筛选逻辑,可将today临时替换为固定测试日期,比如today = Date.new(2021, 11, 16),此时计算得:

  • Jerry入职93天,符合要求
  • Berry入职95天,符合要求
  • Jack入职89天,不符合要求
    运行后只会输出前两位员工的休假提醒,和预期效果一致。

内容的提问来源于stack exchange,提问作者Moxx123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:24:00