प्राप्त करें, इसलिए डेटटाइम ऑब्जेक्ट दिया गया है, और एक निश्चित समय, मैं दिए गए डेटटाइम ऑब्जेक्ट के बाद निश्चित समय की अगली घटना प्राप्त करना चाहता हूं।रूबी डेटटाइम: अगले 5:15 बजे (या इसी तरह)
- उदाहरण के लिए
, 14 मार्च, 2016 4:00 बजे की तारीख, और 5:15 बजे के समय को देखते हुए, मैं 14 वीं मार्च लौटना चाहते, 2016 5:15 बजे।
हालांकि, 14 वीं मार्च, 2016, 6:00 तिथि, और 5:15 बजे के समय को देखते हुए, मैं 15 वीं मार्च, 2016, 5:15 बजे वापस जाने के लिए, चाहते हैं के बाद से है कि अगले घटना है।
अब तक, मैं इस कोड लिखा है:
# Given fixed_time and date_time
new_time = date_time
if fixed_time.utc.strftime("%H%M%S%N") >= date_time.utc.strftime("%H%M%S%N")
new_time = DateTime.new(
date_time.year,
date_time.month,
date_time.day,
fixed_time.hour,
fixed_time.min,
fixed_time.sec
)
else
next_day = date_time.beginning_of_day + 1.day
new_time = DateTime.new(
next_day.year,
next_day.month,
next_day.day,
fixed_time.hour,
fixed_time.min,
fixed_time.sec
)
end
# Return new_time
यह काम करता है, लेकिन वहाँ एक बेहतर तरीका है?
धन्यवाद! यह फ़ंक्शन को बेहतर और छोटा दिखता है, हालांकि दृष्टिकोण समान है। अगर मुझे बेहतर दृष्टिकोण के साथ कोई जवाब नहीं मिलता है, तो मैं निश्चित रूप से स्वीकृत उत्तर के रूप में आपका निशान चिन्हित करूंगा। – shashwat
@shashwat बस यह देखने के लिए जांच कर रहा है कि क्या आप बेहतर दृष्टिकोण ढूंढ पाए हैं, या वह है जिसके साथ आप जा रहे हैं? –