【问题标题】:Iterate over days, starting from x date through an end date迭代几天,从 x 日期开始到结束日期
【发布时间】:2013-03-13 12:08:54
【问题描述】:

例如,我需要从 2013 年 1 月 1 日开始,并为每个日期“做一些事情”,从而为每个日期生成一个 JSON 文件。

我已经为一个日期制定了“做一些事情”部分,但我很难从一个日期开始并循环到另一个结束日期。

【问题讨论】:

    标签: ruby json date


    【解决方案1】:

    您可以使用范围:

    (Date.new(2012, 01, 01)..Date.new(2012, 01, 30)).each do |date|
      # Do stuff with date
    end
    

    或(见@awendt 答案)

    Date.new(2012, 01, 01).upto(Date.new(2012, 01, 30)) do |date|
      # Do stuff with date
    end
    

    【讨论】:

    • 太棒了,谢谢!我将如何定义日期格式(01012013 - 月日年)?
    • 我的坏@HunterMcMillen。 user1034672 我不明白你的问题。
    • 对于范围内的每个日期,我最终需要以这种格式打印它:01012103,与monthdayyear一致。
    • 试试这个:sprintf '%02d%02d%d',date.month, date.day, date.year
    • 嗯,刚刚试了下,没有任何返回。我用它替换了#Do stuff with date。
    【解决方案2】:

    你可以使用:

     first.upto(last) do |date|
    

    其中first 和last 是日期对象。

    例如,看看我做了什么here in a project of mine。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 2012-08-19
      相关资源
      最近更新 更多