如何将一个简单的时间字符串解析为一个时间段?

阿米特·埃兰多(Amit Erandole)

在我的Ruby应用程序中,我有一个Investment具有term属性实体

我需要此类来接受用户输入形式为3 Years的字符串36 months我想要的是将输入转换为月数,将term属性设置为该时间段,然后确定到期日。

到目前为止,我已经尝试使用Active Support和Chronic,但是API不支持此功能。

该吸气剂有效:

  def term
    if term =~ /year[s]?/i
      term = term.to_i * 12
    else term =~ /month[s]?/i
      term = term.to_i
    end
  end

但是在Ruby中是否有更优雅的方法可以做到这一点?

福伊特斯

Ruby没有内置任何表示“时间跨度”的内容(某些其他语言则有)。但是,有一个针对它timespan库(,尽管对于您的情况可能有点过大。

您提到chronic不支持这一点。但是,为什么不自己计算时差呢?

require 'chronic'

input = '2 years'
then = Chronic.parse(input + ' ago')
now = Time.now

# Now we just calculate the number of months
term = (now.year * 12 + now.month) - (then.year * 12 + then.month)

这样,您可以灵活地进行chronic解析,而您仍然不需要太多代码。

或者只是继续使用timespan库。

require 'timespan'

term = Timespan.new('2 years').to_months
# Boom.

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ruby:如何将一个时间字符串转换为一个时间点的浮点数?

来自分类Dev

如何使用Python在一个时间段内对行进行分组

来自分类Dev

如何按小时数平均一个时间段?

来自分类Dev

如何获取不同值的计数直到一个时间段Impala / SQL?

来自分类Dev

检查一个时间段是否包含在另一个时间段中

来自分类Dev

如何通过使用R中的时间序列中的第一个和最后一个时间戳记来定义相遇时间段

来自分类Dev

检查日期是否在另一个时间段中已经存在

来自分类Dev

GeoServer:提取一个时间段的栅格数据

来自分类Dev

Excel:计算一个时间段内有多少行

来自分类Dev

从重复的组开始一个时间段

来自分类Dev

在一个时间段内优先考虑上次发生的事件

来自分类Dev

GeoServer:提取一个时间段的栅格数据

来自分类Dev

检查日期是否在另一个时间段中已经存在

来自分类Dev

MySQL选择一个时间段内的最大并发调用数

来自分类Dev

计算一个时间段内每个用户最常触发的事件

来自分类Dev

Sqlite 选择一个时间段内的数据

来自分类Dev

在一个时间段内以相等的时间间隔缓慢地查询PostgreSQL的Mins和Maxs

来自分类Dev

如何将时间戳字符串转换为另一个时区的时间戳

来自分类Dev

如何将先前的时间戳预测作为下一个时间戳的附加输入?

来自分类Dev

如何在一个时间段内(例如从上午10点到下午12:30)启动/停止Python函数?

来自分类Dev

如何将键值附加到一个简单的字符串数组?

来自分类Dev

当一个部分可以有空格时,如何将字符串解析为多个变量?

来自分类Dev

为每个变量构建一个表格以显示 NA 发生的时间段

来自分类Dev

将多行合并为一个时间间隔

来自分类Dev

如何将一个句子(字符串)分解为一个列表([String])?

来自分类Dev

给定一个字符串值和一个时间戳,如何在BigQuery中创建一个基于年份的自定义分区表?

来自分类Dev

如何让GDB为输出的每一行显示一个时间戳?

来自分类Dev

将一个时间范围缩小到另一个时间范围的算法

来自分类Dev

如何在一个查询中获得不同时间段的总和

Related 相关文章

  1. 1

    Ruby:如何将一个时间字符串转换为一个时间点的浮点数?

  2. 2

    如何使用Python在一个时间段内对行进行分组

  3. 3

    如何按小时数平均一个时间段?

  4. 4

    如何获取不同值的计数直到一个时间段Impala / SQL?

  5. 5

    检查一个时间段是否包含在另一个时间段中

  6. 6

    如何通过使用R中的时间序列中的第一个和最后一个时间戳记来定义相遇时间段

  7. 7

    检查日期是否在另一个时间段中已经存在

  8. 8

    GeoServer:提取一个时间段的栅格数据

  9. 9

    Excel:计算一个时间段内有多少行

  10. 10

    从重复的组开始一个时间段

  11. 11

    在一个时间段内优先考虑上次发生的事件

  12. 12

    GeoServer:提取一个时间段的栅格数据

  13. 13

    检查日期是否在另一个时间段中已经存在

  14. 14

    MySQL选择一个时间段内的最大并发调用数

  15. 15

    计算一个时间段内每个用户最常触发的事件

  16. 16

    Sqlite 选择一个时间段内的数据

  17. 17

    在一个时间段内以相等的时间间隔缓慢地查询PostgreSQL的Mins和Maxs

  18. 18

    如何将时间戳字符串转换为另一个时区的时间戳

  19. 19

    如何将先前的时间戳预测作为下一个时间戳的附加输入?

  20. 20

    如何在一个时间段内(例如从上午10点到下午12:30)启动/停止Python函数?

  21. 21

    如何将键值附加到一个简单的字符串数组?

  22. 22

    当一个部分可以有空格时,如何将字符串解析为多个变量?

  23. 23

    为每个变量构建一个表格以显示 NA 发生的时间段

  24. 24

    将多行合并为一个时间间隔

  25. 25

    如何将一个句子(字符串)分解为一个列表([String])?

  26. 26

    给定一个字符串值和一个时间戳,如何在BigQuery中创建一个基于年份的自定义分区表?

  27. 27

    如何让GDB为输出的每一行显示一个时间戳?

  28. 28

    将一个时间范围缩小到另一个时间范围的算法

  29. 29

    如何在一个查询中获得不同时间段的总和

热门标签

归档