返回日期,如果日期范围
问题描述:
内我有一个包含截止日期列表的对象,我想建立时指定的日期为1个月以内到期日之前返回到期日的系统。它应该以“2009年2月1日”格式返回截止日期。让我澄清一下,使用我当前的代码返回日期,如果日期范围
#Build array of estate objects
estate.due_dates = "1st Feb, 3rd May, 1st Aug, 5th Nov"
estate2.due_dates = "28th Feb, 31st May, 31st Aug, 30th Nov"
estates = [estate,estate2]
set_due_date_on_estates("1st Jan 2009",estates) #Run function - should return "1st Feb 2009,28th Feb 2009"
def set_due_date_on_estates(date,estates)
estates.each{|estate|
estate.due_dates.split(",").each{|due_date|
((date)..(date >> 1)).each{|current_date|
estate.set_reminder(due_date + current_date.strftime("%Y")) if current_date.strftime('%d %m') ==
Date.parse(due_date).strftime('%d %m')
}
}
end
}
我遇到的问题是,我的截止日期列表可是没有一年的时间,所以我通过我的范围内循环和检查,如果日期使用格式是平等的“%d%m”。如果是这样,我使用循环中当前“截止日期”在循环中与“当前日期”的年份连接的环路中设置提示。
对代码不太满意,特别是嵌套循环,并想知道是否有更好的方法可以处理检查日期范围内的due_dates,即使due_dates没有一年。由于
慢性分析器的时候看起来正是即时寻找。由于 – namtax
@namtax,请我感兴趣的这个问题,你是如何能够解决它 –