/ / Django डेटाटाइम अभिव्यक्ति - अजगर, डीजेंगो, डेटाटाइम

Django डेटाटाइम अभिव्यक्ति - पायथन, django, डेटाटाइम

हैलो मैं django का उपयोग कर रहा हूँ और के माध्यम से datetime इकट्ठा कर रहा हूँ

start_date = models.DateTimeField("start date", blank=True)
end_date = models.DateTimeField("end date", blank=True)

मेरे पास एक रिपोर्ट प्रारंभ तिथि और एक रिपोर्ट समाप्ति तिथि है।

मैं रिपोर्ट के लिए लिए गए समय को पुनः प्राप्त करना चाहता हूं,

एंड_डेट लेना और अंतिम तिथि घटाना और उसे निकटतम दिन तक पहुंचाना

def report_days(self):
return self.end_date - self.start_date

वर्तमान में अजगर शेल इसे लौटाता है

>>> a.report_days()
datetime.timedelta(2, 65020, 613435)

उत्तर:

उत्तर № 1 के लिए 1

Django पायथन डेटटाइम ऑब्जेक्ट्स के रूप में DateTimeFields का प्रतिनिधित्व करता है, इसलिए आपके घटाव का परिणाम ए है datetime.timedelta वस्तु। पूरे दिन की संख्या प्राप्त करने के लिए, आप कर सकते हैं:

delta = self.end_date - self.pub_date
return delta.days

यह केवल पूरा दिन मायने रखता है, हालांकि। निकटतम पूर्ण दिन के लिए, आप कुछ ऐसा कर सकते हैं:

delta = self.end_date - self.pub_date
if delta.seconds / 3600 >= 12:
return delta.days + 1 # round up
else:
return delta.days # round down

अधिक जानकारी के लिए देखें: http://docs.python.org/2/library/datetime.html#timedelta-objects