ए Time
कई सेकंड पाप है सीई एक युग जबकि DateTime
एक युग के बाद से कई दिनों के लिए है, इसलिए 1
को DateTime
में जोड़ने का एक पूरा दिन जोड़ता है। आप फिर भी उदाहरण
d = DateTime.now
d + Rational(10, 86400)
के लिए एक दिन के भिन्न जोड़ सकते हैं, (के बाद से वहाँ एक दिन में 86400 सेकंड कर रहे हैं) d
करने के लिए 10 सेकंड जोड़ने जाएगा।
आप रेल का उपयोग कर रहे हैं, तो ActiveSupport कुछ सहायक तरीकों कहते हैं और आप कर सकते हैं
d + 20.minutes + 10.seconds
कौन सा सही काम करेंगे d
एक DateTime
या एक Time
है। आप अपने आप ActiveSupport का उपयोग कर सकते हैं, और इन दिनों आप केवल बिट्स को खींच सकते हैं। मुझे याद है कि यह सामान activesupport/duration
में है। मेरा मानना है कि कुछ अन्य रत्न भी हैं जो समय प्रबंधन के साथ भी मदद करते हैं।
स्रोत
2012-04-07 16:27:22
व्यक्तिगत रूप से मैं इसे थोड़ा और स्पष्ट बनाने के लिए '60 * 60 * 24' लिखना पसंद करता हूं जहां जादू संख्या आई थी, भले ही यह रनटाइम पर बहुत धीमी गति से हो। –
@AndrewMarshall सहमत हुए, और जब तक कि यह लाखों बार लाखों बार इस 'डेटटाइम' मैनिपुलेशन को निष्पादित नहीं कर रहा है, तो दो और गुणात्मक संचालन * माइक्रो-ऑप्टिमाइज़िंग * के लायक नहीं हैं। जब तक आप प्रदर्शन समस्या में भाग नहीं लेते तब तक इसके बारे में भी मत सोचें।इससे भी बेहतर, कोड की शुरुआत में निरंतर घोषित करने के बारे में कैसे? 'SECONDS_PER_DAY = 60 * 60 * 24', और इसका उपयोग करें। 'MINUTERS_PER_DAY = 60 * 24' और' HOURS_PER_DAY = 24' के लिए भी किया जा सकता है, हालांकि शायद आखिरी व्यक्ति जरूरी नहीं है, लेकिन यह सुसंगत होना और केवल उन सभी को सूचीबद्ध करना अच्छा है। –