- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我是 Ruby 的新手,我正在尝试扩展 Date 类以添加一个函数,该函数将返回该月的第一个星期日。这是为了帮助绘制月历。所以说九月从星期六开始。然后我希望此函数返回 8 月 26 日,因为这是日历需要首先绘制的日期。
我在 irb 中的工作方式如下:
fs = Date.today - Date.today.mday + 1
fs = fs - fs.wday
所以现在我正在尝试将日期类扩展为
class Date
def first_of_month
return Date.new(self.year, self.month, 1)
end
def first_sunday_of_first_week
return self.first_of_month - self.wday
end
end
第一个月的方法似乎工作正常。这个月的第一个星期天没有。我认为它与 Date.new missing 有关,但无论我如何尝试重做它似乎都不起作用。我正在制作一个 Sinatra 应用程序,所以我没有执行此操作的 Rails 函数。
此处的函数为这两种方法返回月份的第一天,而不返回该月的第一个星期日。
我如何正确地使用这个扩展方法?谢谢
更新:
class Date
def first_of_month
return Date.new(self.year, self.month, 1)
end
def first_sunday_of_first_week
first_of_month - first_of_month.wday
end
end
这似乎行得通,但它是否正确,或者我是否强制执行了超出需要的工作。这不是创建到 Date.new 返回一个吗?
最佳答案
你不需要self.method
也不需要return
,你可以只写method
来使它更简洁。问题是你只是减去当前日期的wday,但是你需要减去当月第一天的wday
def first_sunday_of_first_week
first_of_month - first_of_month.wday
end
这对我有用。
关于您的更新:您可以通过避免使用 first_of_month
方法并按照以下方式执行它来使其效率提高一倍:
def first_sunday_of_first_week
first = Date.new(year, month, 1)
first - first.wday
end
您的方法调用了 first_of_month
方法两次,因此日期被创建了两次,而在我的版本中,只创建了一个实例。如果性能是一个问题,这会稍微更有效率。
关于Ruby 扩展 Date 类以添加新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343555/
如果有人能为我分解它,让我能理解它,我会非常感激。我知道它用于通过 apply 方法创建新对象。 Function.prototype.new = function () { var args
新版本的HADOOP中有一个方法。http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#conc
根据支持库变更日志和 Fragment 类文档 ( https://developer.android.com/reference/android/support/v4/app/Fragment.ht
根据支持库更改日志和 Fragment 类文档 (https://developer.android.com/reference/android/support/v4/app/Fragment.htm
执行Async BigJob() 的无限运行任务的正确方法是什么?并且可以根据要求停止 提示:我正在尝试学习 [一种] 新方法来更新我现有的策略。 我有一个简单的程序(测试程序),它有一个开始 和停止
我将解释我的想法:我使用 python 作为谷歌应用程序引擎 + js + css 主项目将存储在 src 文件夹下,如下所示:\src \app <--- 这里是 gae 的所有 python 应用
我是一名优秀的程序员,十分优秀!