`

Ruby Date Range

    博客分类:
  • Ruby
阅读更多
Ruby的Range功能强大无比,我们可以简单的使用:
(1..10).each{|i| puts i}

打印出:
1
2
...
10
对于字符串我们也可以:
("hello" .. "world").each{|word| puts word}

更加强大的是对于日期,ruby同样支持rang
require 'date'
date_begin = Date.parse '2010-09-01'
date_end = Date.parse '2010-10-07'
(date_begin .. date_end).each{|date| puts date}

这个很有用,我今天就遇到了一个问题使用了date的Range,轻松搞定。
这个问题是:要处理的文件都是文件名为保存时的日期加后缀,比如:
20100910-00001,现在我要处理从2010-09-01到2010-10-07的所有文件,
shell有seq,这个只能搞定通过使用seq 1 10做1..10这样的事情,对于日期
搞不定,也不想自己搞那么一个数组。
于是就想到了强大的Ruby的Range来搞定它,发现日期果然支持Range操作,于是开搞:
代码类似如下:
date_seq.rb
require 'date'
date_begin = Date.parse '2010-09-01'
date_end = Date.parse '2010-10-07'
(date_begin .. date_end).each{|date| puts date.to_s.gsub(/-/,"")}

while read date; do
    for file in `ls $date-*`; do
       #process the file
    done
done < ruby date_seq.rb

分享到:
评论
2 楼 fuliang 2010-10-09  
orcl_zhang 写道
(date_begin .. date_end).each{|date| puts date}
这样居然都行..

是啊,果然强大
1 楼 orcl_zhang 2010-10-09  
(date_begin .. date_end).each{|date| puts date}
这样居然都行..

相关推荐

    Ruby-LegatoGoogleAnalyticsReportingAPI的Ruby客户端

    date_range '7daysAgo', 'today' end ``` 5. **执行报告并处理结果**:调用`execute`方法发送请求并获取结果。结果是一个包含数据的Ruby对象,可以直接遍历或进一步处理: ```ruby report.execute.each do |...

    swift-DateTools-在Objective-C中的轻松处理日期和时间

    DateRange *range1 = [[DateRange alloc] initWithStartDate:date1 endDate:date2]; BOOL contains = [range1 containsDate:date3]; DateRange *intersection = [range1 intersectionWithDateRange:anotherRange]; `...

    Ruby on Rails 指南 v5.0.1 中文版

    - **Range的扩展**:列举Range类被扩展后的新方法。 - **Date的扩展**:介绍Date类的扩展方法。 - **DateTime的扩展**:展示DateTime类的扩展方法。 - **Time的扩展**:列举Time类被扩展后的新方法。 - **File的扩展...

    gu:与内部运营相关的各种公用事业

    gu 与内部运营相关的各种公用事业 mp_event_dump ... -f, --from-date=DATE The start of the date range -t, --to-date=DATE The end of the date range -q, --query=QUERY The query to apply -o, --outp

    输出月份英文名字的pta

    Ruby的`Date::MONTHNAMES`数组包含了月份的英文名称: ```ruby Date::MONTHNAMES.each do |month| puts month end ``` 以上就是在不同编程语言中输出月份英文名称的方法。通过这些练习,学习者不仅可以掌握...

    date_period_parser:解析日期日期字符串并返回开始和结束日期时间

    date_range = DatePeriodParser . range ( params [ "period" ] , default : "today" ) @posts = Posts . where ( created_at : date_range ) end 期间示例: 年YYYY 月YYYY-MM 日期YYYY-MM-DD 开局之年/月...

    fusion图标使用手册.pdf

    如代码所示,我们先设定开始和结束日期,然后根据`params[:id]`获取员工ID,通过`Employee`模型的`find_with_timesheets_in_date_range`方法查询数据。 在`Employee`模型中,`find_with_timesheets_in_date_range`...

    date_supercharger:ActiveRecord日期范围查询的快捷方式

    日期增压器日期查询的快捷方式。 日期增压器将_between , _between_inclusive , _after , _after_or_at , _before和_before_or_at方法添加到Active Record模型的每个日期/日期时间字段。用法之间Visit ....

    web_parser-cbrf:gem 从 CBRF 网站获取有关汇率的信息

    web_parser-cbrf gem 从 CBRF 网站获取有关汇率的信息 安装 1. 将 gem 连接到 Gemfile ... 您可能需要包含更新版本作为标签。 撰写本文时的最新版本是“v1.0.0” 2....$ bundle ... get_date_range_for_

    网页课程设计&毕业设计_摄影图片画廊幻灯展示HTML5模板推荐5553.zip

    同时,HTML5引入了新的表单控件,如&lt;date&gt;、&lt;range&gt;等,虽然在这个模板中可能并未用到,但在实际的网站设计中它们能极大地提升用户体验。 接着,我们看到模板中可能使用了CSS3来实现动画效果和响应式布局。CSS3的...

    Laravel开发-html5-generator

    5. **表单改进**:新的表单输入类型(如email、date、range)和属性(如required、placeholder)使得表单验证更强大。 6. **Canvas & SVG**:这两个图形绘制技术让开发者能够创建交互式和动态图形,无需依赖Flash或...

    HTML5参考手册(20211104223358).pdf

    `&lt;form&gt;`元素的改进和新输入类型如`&lt;input type="date"&gt;`、`&lt;input type="range"&gt;`等,使表单验证和数据输入更加便捷。 在错误处理和互操作性上,HTML5制定了更严格的规则,确保所有浏览器对HTML元素的解析和行为有...

    html5自适应个人博客html静态模板.zip

    5. 表单控件改进:如新增的&lt;input type="date"&gt;、&lt;input type="range"&gt;等,增强了用户输入体验。 二、响应式设计 响应式设计是确保网站在不同设备上表现良好的关键。通过使用CSS3的媒体查询(@media),我们可以...

    HTML5 标准.docx

    - 更好的表单控制:新增了多种表单输入类型,如date, time, email, url等,提高了表单验证的灵活性。 4. 重要标记 HTML5 中的一些重要标记包括, , , , , , , , , , , , , , , &lt;ruby&gt;, , , , 等,它们增强了网页内容...

    web前端开发知识点总结.docx

    - `ruby`:用于标注音译或注解,如汉字拼音。 - `iframe`:在页面中嵌入其他网页或框架。 **CSS(Cascading Style Sheets)** CSS用于定义HTML元素的样式和布局,包括颜色、字体、尺寸、位置等。通过类选择器、ID...

    SIGMOD 2009 全部论文(2。后12篇)

    With large amounts of correlated probabilistic data being generated in a wide range of application domains including sensor networks, information extraction, event detection etc., effectively ...

    22个HTML5 技巧

    10. **表单控件增强**:HTML5引入了新的表单输入类型,如`date`、`email`、`range`等,以及`required`属性,增强了表单验证功能。 11. **画布(Canvas)**:`&lt;canvas&gt;`元素提供了动态图形绘制的能力,通过...

    网站前端总结

    - **新的表单控件**: 如 `&lt;input type="date"&gt;` 和 `&lt;input type="range"&gt;` 提升了用户体验。 - **Canvas元素**: 支持在网页上绘制图形。 - **Media元素**: `&lt;video&gt;` 和 `&lt;audio&gt;` 元素使嵌入媒体文件更为简单。...

Global site tag (gtag.js) - Google Analytics