Yani, bir DateTime nesnesi ve sabit bir zaman verildiğinde, belirtilen DateTime nesnesinden sonra sabit sürenin sonraki oluşumunu almak istiyorum. 14 Mart 2016, 04:00 pm tarihi ve 05:15 pm zamanı göz önüne alındığında, ben 14 Mart dönmek istiyorum ÖrneğinRuby DateTime: Sonraki 5:15 pm (veya benzeri)
, 2016 17:15. bir sonraki durum olduğundan beri
Ancak 14 Mart 2016, 06:00 pm tarihi ve 05:15 pm zamanı göz önüne alındığında, ben, Mart , 05:15 pm dönmek istiyorum.
Şimdiye kadar, ben bu kodu yazdık:
# 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
Çalışır, ancak daha iyi bir yolu var mı?
Teşekkürler! Bu yaklaşım aynı olmasına rağmen, işlevin daha iyi ve daha küçük görünmesini sağlar. Daha iyi bir yaklaşımla bir cevap alamıyorsam, kesinlikle kabul edilen cevap olarak sizinkini işaretleyeceğim. – shashwat
@shashwat Daha iyi bir yaklaşım bulabiliyor muydunuz, yoksa gittiğiniz yer mi? –