如何搜索日期数组以确定一个或多个日期是否在定义的范围内

芝加哥大学

我试图解决的问题是确定用户上个月是否创建了“提示”。此检查将在用户创建新提示后完成。

我有一个名为“tip_dates”的用户过去小费日期的字符串数组。我当前使用 rails 的解决方案遍历该数组中的每个值,将其转换为日期,并检查它是否在该月内。

这是最有效的解决方案吗?我担心随着日期数组变大,此检查可能需要很多时间。

def tip_last_month
    start_date = Date.today.beginning_of_month - 1.month
    end_date = start_date.end_of_month
    for tip_date in self.tip_dates do
        if tip_date.to_date.between?(start_date, end_date)
            return true
        end
    end
    return false
end
克里斯科娃

Ruby 人员并没有真正在函数的末尾使用for显式的return-s。默认情况下将返回最后一个表达式的值。

我在这里做的是,我通过将字符串映射到日期对象然后将它们传递给一个any?来创建一个数组,该块将在第一次匹配时返回 true 或如果没有则返回 false。

def tip_last_month
  start_date = Date.today.beginning_of_month - 1.month
  end_date = start_date.end_of_month

  tip_dates.map(&:to_date).any? do |date|
    date.between?(start_date, end_date)
  end
end

确实,随着数组变大,这个函数会变慢。您应该考虑将数据库中的提示存储在一个单独的表中,为每个提示设置一条记录并按日期查询它们。这样会快很多。

您可以在此处阅读有关关联的更多信息:

http://guides.rubyonrails.org/association_basics.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在字符串中搜索3个字母后的日期并确定其是否在日期范围内

来自分类Dev

SQL 查找日期是否在一个范围内

来自分类Dev

查找给定的日期范围是否在MySQL中的另一个日期范围内

来自分类Dev

查找给定的日期范围是否在MySQL中的另一个日期范围内

来自分类Dev

如何确定给定日期范围内一个月中的天数?

来自分类Dev

如何确定一个值是否在一个范围内?

来自分类Dev

Bootstrap DatePicker-跳过范围内的日期数组

来自分类Dev

PHP DateTime 输出范围内的日期数组

来自分类Dev

如何确定ID日期落在一个范围内(范围存储在另一个表的单独行中)

来自分类Dev

如何找到一个PHP中另一个日期范围内的日期范围内的天数?

来自分类Dev

如何确定一个值是否落在圆上的特定角度范围内?

来自分类Dev

在日期范围内搜索

来自分类Dev

评估df每行中的日期时间函数是否在另一个df中的日期时间范围内

来自分类Dev

确定一个范围是否在另一个范围内

来自分类Dev

如何在一个范围内搜索和计算多个名称

来自分类Dev

如何制作一个范围内特定日期时间数据的临时表?

来自分类Dev

如何确定一个数字是否在另一个数字的某个范围内

来自分类Dev

确定两个日期是否在允许的时间范围内

来自分类Dev

如何检查数组中的任何日期是否在日期范围内?

来自分类Dev

如何检查日期是否在指定的日期范围内

来自分类Dev

配置单元查询以获取另一个日期的月份范围内的日期

来自分类Dev

SQL表具有多个重复项的联接-在一个日期范围内返回的计数小于X

来自分类Dev

检查日期是否在日期范围内

来自分类Dev

给定一个范围,在Scala中获取该范围内的所有日期

来自分类Dev

如何确定日期范围内的唯一年份?

来自分类Dev

给定日期数组,将结果显示在“周”范围内

来自分类Dev

Azure数据工厂:返回指定范围内的日期数组

来自分类Dev

如何检查一个范围内的值是否是另一个范围内的值的倍数?

来自分类Dev

PostgreSQL:如何在给定的日期范围内为每个帐户选择最后一个余额?

Related 相关文章

  1. 1

    如何在字符串中搜索3个字母后的日期并确定其是否在日期范围内

  2. 2

    SQL 查找日期是否在一个范围内

  3. 3

    查找给定的日期范围是否在MySQL中的另一个日期范围内

  4. 4

    查找给定的日期范围是否在MySQL中的另一个日期范围内

  5. 5

    如何确定给定日期范围内一个月中的天数?

  6. 6

    如何确定一个值是否在一个范围内?

  7. 7

    Bootstrap DatePicker-跳过范围内的日期数组

  8. 8

    PHP DateTime 输出范围内的日期数组

  9. 9

    如何确定ID日期落在一个范围内(范围存储在另一个表的单独行中)

  10. 10

    如何找到一个PHP中另一个日期范围内的日期范围内的天数?

  11. 11

    如何确定一个值是否落在圆上的特定角度范围内?

  12. 12

    在日期范围内搜索

  13. 13

    评估df每行中的日期时间函数是否在另一个df中的日期时间范围内

  14. 14

    确定一个范围是否在另一个范围内

  15. 15

    如何在一个范围内搜索和计算多个名称

  16. 16

    如何制作一个范围内特定日期时间数据的临时表?

  17. 17

    如何确定一个数字是否在另一个数字的某个范围内

  18. 18

    确定两个日期是否在允许的时间范围内

  19. 19

    如何检查数组中的任何日期是否在日期范围内?

  20. 20

    如何检查日期是否在指定的日期范围内

  21. 21

    配置单元查询以获取另一个日期的月份范围内的日期

  22. 22

    SQL表具有多个重复项的联接-在一个日期范围内返回的计数小于X

  23. 23

    检查日期是否在日期范围内

  24. 24

    给定一个范围,在Scala中获取该范围内的所有日期

  25. 25

    如何确定日期范围内的唯一年份?

  26. 26

    给定日期数组,将结果显示在“周”范围内

  27. 27

    Azure数据工厂:返回指定范围内的日期数组

  28. 28

    如何检查一个范围内的值是否是另一个范围内的值的倍数?

  29. 29

    PostgreSQL:如何在给定的日期范围内为每个帐户选择最后一个余额?

热门标签

归档