रूबी की तिथि/समय सहायक मददगार हैं लेकिन मुझे एक विसंगति मिली। ऐसा लगता है कि 12. महीनों के बराबर नहीं है 1. प्रिय। 1. माह की जांच करें और आपको यह 30.days के बराबर और, निश्चित रूप से, 12 * 30.days = 360.days, वास्तविक वर्ष की लंबाई से 5.25 दिन कम होगा।रूबी में, 12. महीनों! = 1. वर्ष
जब मैं क्लाइंट द्वारा निर्दिष्ट महीनों की संख्या के आधार पर हमारी वेबसाइट के कुछ घटकों तक पहुंच सेट करता हूं, तो मैं इस पर आया था। मैंने पाया कि मेरे परीक्षण चलाने के दौरान 36. माह की अवधि समाप्त होने के कुछ हफ्तों की अवधि समाप्त हो गई। समाधान कुछ ऐसा था:
def months_to_seconds(number_of_months)
((number_of_months.to_f/12) * 1.year).to_i.seconds
end
यह संख्या_of_months द्वारा वर्ष के किसी भी अंश में सेकंड की संख्या देता है।
चूंकि 1. वर्ष 365.25 दिनों में सेकंड के बराबर है, तो आपको लगता है कि उनके पास नहीं था 1. माह 30 दिनों के बजाय 1/12 साल के लिए सेकंड वापस कर देता है?
क्या कोई इस से पहले चला गया है? क्या किसी के पास बेहतर समाधान है?
असंबद्ध, लेकिन आपको वहां 'to_f' कॉल की आवश्यकता नहीं है; बस '12.0' से विभाजित करें। इसके लिए –