Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby在你的工作日(周末除外)找到约会对象_Ruby_Date_Ruby On Rails 4 - Fatal编程技术网

Ruby在你的工作日(周末除外)找到约会对象

Ruby在你的工作日(周末除外)找到约会对象,ruby,date,ruby-on-rails-4,Ruby,Date,Ruby On Rails 4,我想在输入日期时创建一个def get日。除周末外,我们每周工作5天。 截止日期:2018年2月27日 您输入:3->输出:2018年3月2日 您输入:5->输出:06/03/2018 您输入:7->输出:08/03/2018 您输入:10->输出:13/03/2018 我的代码: require 'date' def next_week d, c return d + 7 * c end def my_add_day day d = Date.today d = ne

我想在输入日期时创建一个def get日。除周末外,我们每周工作5天。
截止日期:2018年2月27日
您输入:3->输出:2018年3月2日
您输入:5->输出:06/03/2018
您输入:7->输出:08/03/2018
您输入:10->输出:13/03/2018

我的代码:

require 'date'

def next_week d, c
   return d + 7 * c
end

def my_add_day day
    d = Date.today
    d = next_week d, day/5
    day = day % 5
    if (6 - d.wday) > day
        d = d + day
    else
        d = d + day + 2
    end
    return d
end

您可以使用gem

def add_working_days date,num
num.times.inject(date)do | date|
case date.wday
当5时,则日期+3
当6时,则日期+2
其他日期+1
终止
终止
终止
主要的▶ 添加工作日日期。今天,3
#⇒ #
主要的▶ 添加工作日日期。今天,5
#⇒ #
主要的▶ 添加工作日日期。今天,7
#⇒ #
主要的▶ 添加工作日日期。今天,10
#⇒ #
def添加工作日日期,num
num.times.inject(date)do | date|
case date.wday
当5时,则日期+3
当6时,则日期+2
其他日期+1
终止
终止
终止
主要的▶ 添加工作日日期。今天,3
#⇒ #
主要的▶ 添加工作日日期。今天,5
#⇒ #
主要的▶ 添加工作日日期。今天,7
#⇒ #
主要的▶ 添加工作日日期。今天,10
#⇒ #
使用gem(它允许额外的功能,例如定义
BusinessTime::Config.holidays
),这可以写成:

1.business_day.after(date)
或者作为更通用的辅助方法:

def add_working_days(date, num)
  num.business_days.after(date)
end
如果这是应用程序中需要解决的常见/复杂问题,我建议使用此库。

使用gem(它允许额外的功能,例如定义
BusinessTime::Config.holidays
),这可以写成:

1.business_day.after(date)
或者作为更通用的辅助方法:

def add_working_days(date, num)
  num.business_days.after(date)
end
如果这是应用程序中需要解决的常见/复杂问题,我建议您使用此库。

您可以使用ruby中的a跳过未来的所有周六和周日,并以函数式的方式获取下一个工作日的日期,而无需任何条件

def next_workday(number_of_days)
  (DateTime.now..DateTime::Infinity.new)
    .lazy
    .reject { |x| x.saturday? || x.sunday? }
    .drop(number_of_days)
    .first
end
您可以使用ruby中的a跳过未来所有的星期六和星期天,并以函数式的方式获取下一个工作日的日期,而不带任何条件

def next_workday(number_of_days)
  (DateTime.now..DateTime::Infinity.new)
    .lazy
    .reject { |x| x.saturday? || x.sunday? }
    .drop(number_of_days)
    .first
end

旁注:请查看。Ruby项目在基本代码的结构上非常一致,即2个空格选项卡,不需要像这样显式的
return
语句。@TomLord谢谢我记得注:)旁注:查看。Ruby项目在基本代码的结构上非常一致,即2个空格选项卡,不需要像这样的显式
return
语句。@TomLord感谢我记得注释:)