gpt4 book ai didi

ruby-on-rails - Rails - 确定星期几

转载 作者:数据小太阳 更新时间:2023-10-29 07:43:53 26 4
gpt4 key购买 nike

所以 DateTime.current 返回 Fri, 11 Mar 2016 19:34:10 +0000

如何确定星期几。例如,如果 DateTime.current 是星期五(只是星期几,与日期无关)?

DateTime.current == DateTime.parse("Friday") 将不起作用,因为 DateTime.parse("Friday") 返回 Fri, 11 Mar 2016 00:00:00 +0000 这不一样。

如何检查是否只有日期或时间等于特定值?

提前致谢!

基本上我想看看 DateTime.current 是不是周末也不是公共(public)假期并且是在办公时间之间

最佳答案

在 Ruby 2.1.1 中,Date 类有一个 friday? 方法

Returns true if the date is a friday

首先,需要date

require 'date'

然后用当前日期创建一个新的日期实例。这是一个例子

current_time = Time.now
year = current_time.year
month = current_time.month
day = current_time.day

date = Date.new(year, month, day)
date.friday?
=> true

根据您的编码偏好,您可以将其进一步干燥

date = Date.new(Time.now.year, Time.now.month, Time.now.day)
=> #<Date: 2016-03-11 ((2457459j,0s,0n),+0s,2299161j)>
date.friday?

如果您想不用 bool 方法(通常以问号结尾并返回 truefalse)来解决这个问题,例如与数据库列进行比较时,可以使用 Date#wday 方法。请记住,这将返回 (0..6) 范围内的数字,其中 0 代表星期日。这意味着您要传入 5 以检查星期五。

if date.wday == 5
// Do something
end

此外,如果您在营业时间工作,使用 business_time gem 可能是最简单的方法

您还可以在 business_time 中包含 holidays gem。

首先,安装gems

gem install business_time
gem install holidays

然后需要 gem

require 'business_time'
require 'holidays'

判断今天是不是工作日

Date.today.workday?

and is a holiday

您现在可以使用类似这样的方法来确定今天是否是假期

Holidays.on(date, :us).empty?

and is between office working hours

办公时间的定义因人而异。没有一成不变的答案。但是,使用 business_time gem,您可以设置配置

BusinessTime::Config.beginning_of_workday = "8:30 am"
BusinessTime::Config.end_of_workday = "5:30 pm"

来源

ruby

http://ruby-doc.org/stdlib-2.1.1/libdoc/date/rdoc/Date.html#method-i-wday

http://ruby-doc.org/stdlib-2.1.1/libdoc/date/rdoc/Date.html#method-i-friday-3F

gem

https://github.com/bokmann/business_time

https://github.com/holidays/holidays

关于ruby-on-rails - Rails - 确定星期几,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com