2010-02-18 9 views
11

से औसत तारीख खोजें मेरे पास अनुमानों की एक तालिका है, प्रत्येक अनुमान के भीतर बस एक तारीख है। मैं सोच रहा था कि मैं दो या दो से अधिक तिथियों को औसत में बदलने के बारे में कैसे जाऊंगा।तारीखों (रूबी)

<div id="logic"> 
<% foo = Date.today %> 
<% bar = Date.today + 10 %> 
<%= (foo + bar)/2 %> 

इस तरह कुछ है, लेकिन स्पष्ट रूप से रूबी मुझे दो तिथियों को विभाजित नहीं दूँगा।

+0

असली दुनिया में दो तिथियों का औसत क्या मतलब है? क्या आप दो तिथियों के बीच आधा रास्ता ढूंढने की कोशिश कर रहे हैं? यदि आपके पास 100 तिथियां थीं, तो उनका औसत अवधारणात्मक रूप से क्या होगा? – Simon

+0

यदि मैं साइट से लिंक करता हूं तो यह आसान हो सकता है, http://www.expct.info/products/3 आप 2010-03-18 और 2010-02-18 की दो तिथियां देख सकते हैं, आईडी औसत के आउटपुट की तरह दो और भीड़ के ज्ञान का उपयोग करते हैं, अधिक लोग आईपैड की वास्तव में तारीख के करीब वोट देते हैं * इसे प्राप्त करना चाहिए। मुझे लगता है कि मेरे उदाहरण के भीतर औसत दिनांक होगा। आज + 5 –

उत्तर

13

तिथि, एक सा के साथ काम करना मुश्किल है आप समय का उपयोग करना चाहिए। टाइम्स में तिथियां परिवर्तित करने का प्रयास करें:

require 'time' 
foo_time = Time.parse(foo.to_s) 
bar_time = Time.parse(bar.to_s) 

timestamps करने के लिए उन्हें कन्वर्ट, तो औसत की गणना, तो समय के लिए वापस परिवर्तित:

avg_date = Date.parse(avg.to_s) 
:

avg = Time.at((foo_time.to_f + bar_time.to_f)/2) 

आपको लगता है कि वापस की तारीख करने के लिए परिवर्तित कर सकते हैं

+0

मदद के लिए बहुत बढ़िया धन्यवाद, यह कमाल है :) –

2
to_time.to_i 

मेरे दोस्त है;)

संबंधित मुद्दे