例如,如果输入,

day = 'Monday'

我如何计算下一个day的日期?

def date_of_next(day)
  ...
end

推荐答案

require 'date'

def date_of_next(day)
  date  = Date.parse(day)
  delta = date > Date.today ? 0 : 7
  date + delta
end

Date.today
#=>#<Date: 2011-10-28 (4911725/2,0,2299161)>
date_of_next "Monday"
#=>#<Date: 2011-10-31 (4911731/2,0,2299161)>
date_of_next "Sunday"
#=>#<Date: 2011-10-30 (4911729/2,0,2299161)>

Ruby相关问答推荐

Rails 7 - 访问连接模型生成新查询

设计登录根路由rails 3

ri 和 rdoc 有什么区别

Ruby:p *1..10中的星号是什么意思

在 Ruby 中导出环境变量

在一组字符串中找到最长的公共起始子字符串

如何使用 RVM 重新编译 ruby​​?

安装 RVM:需求安装失败,状态为:1

按可能为 nil 的属性对对象的 ruby​​ 数组进行排序

Ruby 的 File.open 给出没有这样的文件或目录 - text.txt (Errno::ENOENT)错误

如何绘制 git repo 的代码行历史记录?

有没有办法在 RSpec 中取消存根?

如何在 ruby​​ 中针对正则表达式测试整个字符串?

如何在 ruby​​ net/http 中实现 cookie 支持?

文字数字中的下划线是什么意思?

Ruby 数组中的奇数(或偶数)条目

如何在 Mac OS X Lion 中安装 Ruby 1.9.3?

在 Ruby 中打开默认浏览器

Ruby on Rails switch

如何删除已安装的 ri 和 rdoc?