मैं पाइथन का उपयोग करके पुनरावर्ती तिथियां कैसे उत्पन्न कर सकता हूं? उदाहरण के लिए मैं "हर दूसरे महीने के तीसरे शुक्रवार" के लिए पुनरावर्ती तारीख उत्पन्न करना चाहता हूं। मैं दैनिक, साप्ताहिक, मासिक, वार्षिक (यानी, आउटलुक एक्सप्रेस में पुनरावृत्ति समारोह के समान) के लिए पुनरावर्ती तिथियां उत्पन्न करना चाहता हूं।पायथन का उपयोग कर पुनरावर्ती तिथियां उत्पन्न करना?
उत्तर
import dateutil.rrule as dr
import dateutil.parser as dp
import dateutil.relativedelta as drel
start=dp.parse("19/02/2010") # Third Friday in Feb 2010
यह हर महीने
rr = dr.rrule(dr.MONTHLY,byweekday=drel.FR(3),dtstart=start, count=10)
यह प्रिंट की तीसरे शुक्रवार को उत्पन्न करता है प्रत्येक तीसरे शुक्रवार:
print map(str,rr)
# ['2010-02-19 00:00:00', '2010-03-19 00:00:00', '2010-04-16 00:00:00', '2010-05-21 00:00:00', '2010-06-18 00:00:00', '2010-07-16 00:00:00', '2010-08-20 00:00:00', '2010-09-17 00:00:00', '2010-10-15 00:00:00', '2010-11-19 00:00:00']
rr एक iterable है, तो आप अंकन टुकड़ा करने की क्रिया हर बाहर लेने के लिए उपयोग कर सकते हैं अन्य वस्तु यह हर दूसरे महीने के तीसरे शुक्रवार प्रिंट:
print map(str,rr[::2])
# ['2010-02-19 00:00:00', '2010-04-16 00:00:00', '2010-06-18 00:00:00', '2010-08-20 00:00:00', '2010-10-15 00:00:00']
ऊपर, मैं str
इस्तेमाल किया उत्पादन एक छोटा सा सुंदर बनाना करने के। तिथियों की अधिक लचीली स्ट्रिंग स्वरूपण के लिए, strftime
का उपयोग करें: http://au2.php.net/strftime या सभी विकल्पों के लिए स्ट्रैटाइम के लिए मैन पेज देखें।
print [d.strftime('%d/%m/%Y') for d in rr[::2]]
# ['19/02/2010', '16/04/2010', '18/06/2010', '20/08/2010', '15/10/2010']
+1 क्योंकि मैंने इस तरह के समान प्रश्न का उत्तर देने के लिए आपके उत्कृष्ट उदाहरण का उपयोग किया है: http://stackoverflow.com/questions/3099007/date-library-capable-of-calculating-things-like- हर- तीसरा- बुधवार – bernie
आप dateutil एक कोशिश कर सकते हैं - विशेष रूप से इसके रिलेटिवेटा और क्रूर fetures।
मैं निम्नलिखित कोड का उपयोग करें: प्रिंट सूची (rrule (दैनिक, गिनती = 10, dtstart = पार्स ("19/02/2010"))) बाहर कर दिया है लगता है: [datetime.datetime (2010, 2, 1 9, 0, 0), डेटाटाइम डॉटटाइम (2010, 2, 20, 0, 0), डेटाटाइम डेटाटाइम (2010, 2, 21, 0, 0), डेटाटाइम। टाइमटाइम (2010, 2, 22 , 0, 0), datetime.datetime (2010, 2, 23, 0, 0), datetime.datetime (2010, 2, 24, 0, 0), datetime.datetime (2010, 2, 25, 0, 0) , datetime.datetime (2010, 2, 26, 0, 0), datetime.datetime (2010, 2, 27, 0, 0), datetime.datetime (2010, 2, 28, 0, 0)] लेकिन मैं आउटपुट जैसे: 1 9/02/2010 20/02/2010 21/02/2010 । । । क्या यह बदलना संभव है? – Nimmy
इस कोड को शामिल करने के लिए प्रश्न को संपादित कर सकता है ताकि इसे पढ़ा जा सके? – pwdyson
@nimmyliji: तो आप पुनरावर्ती तिथियों के बारे में नहीं पूछ रहे हैं, लेकिन तारीख स्वरूपण के बारे में नहीं पूछ रहे हैं। –
आप इसे स्वयं लिखने का प्रयास कर सकते हैं। , अब
import datetime
def dateiter(start, resolution):
date = start
while True:
yield date
date += resolution
आप दिनांक पैदा करते हैं और उन्हें फ़िल्टर कर सकते हैं: आपको पहले एक इटरेटर जो किसी दिए गए अंतराल के द्वारा अलग तिथियों उत्पन्न करता है की आवश्यकता होगी
# generate a list of every tuesday of february
# this iterates over every day from now, and filtered according to the rules
# warning: infinite generator below, there is nothing to end the iteration
tuesdays_of_february = (date for date in dateiter(datetime.datetime.now(), datetime.timedelta(days=1)) if date.weekday() == 4 and date.month == 2)
आप जब तक आप पर्याप्त तिथि होती है इटरेटर खुद फोन कर सकते हैं :
>>> from itertools import *
>>>
>>> # get the five next valid dates:
>>> list(islice(tuesdays_of_february),5)
[datetime.datetime(2010, 2,26, 14, 25, 46, 171000), datetime.datetime(2011, 2, 4
, 14, 25, 46, 171000), datetime.datetime(2011, 2, 11, 14, 25, 46, 171000), datet
ime.datetime(2011, 2, 18, 1 4, 25, 46, 171000), datetime.datetime(2011, 2, 25
, 14, 25, 46, 171000)]
>>>
>>> # or until a condition is met:
>>> list(takewhile(lambda date: date.year < 2014, tuesdays_of_february))
[datetime.datetime(2012, 2, 3, 14, 25, 46, 171000), datetime.datetime(2012, 2, 1
0, 14, 25, 46, 171000), datetime.datetime(2012, 2, 17, 14, 25, 46, 171000), date
time.datetime(2012, 2, 24, 14, 25, 46, 171000), datetime.datetime(2013, 2, 1, 14
, 25, 46, 171000), datetime.datetime(2013, 2, 8, 14, 25, 46, 171000), datetime.d
atetime(2013, 2, 15, 14, 25, 46, 171000), datetime.datetime(2013, 2, 22, 14, 25,
46, 171000)]
:
>>> next(tuesdays_of_february)
datetime.datetime(2010, 2, 19, 14, 25, 46, 171000)
अब, आप परिणामों को सीमित करने की जरूरत है
datetime
मॉड्यूल के लिए प्रलेखन पर नज़र डालना न भूलें।
- 1. उत्पन्न स्केला एएसटी पुनरावर्ती विधि
- 2. स्थानीय डब्लूएसडीएल फ़ाइल का उपयोग कर मेट्रो क्लाइंट उत्पन्न करना
- 3. पायथन का उपयोग कर जावास्क्रिप्ट द्वारा उत्पन्न एचटीएमएल को कैसे स्क्रैप करना है?
- 4. फ्लास्क का उपयोग कर पायथन में ब्रेडक्रंब को कार्यान्वित करना?
- 5. तिथियां
- 6. पायथन: का उपयोग कर 'और'
- 7. पायथन के साथ डीपीएपीआई का उपयोग करना?
- 8. अनुसार क्रमबद्ध का उपयोग करना() पायथन में
- 9. मुझे किस पायथन का उपयोग करना चाहिए?
- 10. Google चार्ट: तिथि() का उपयोग किए बिना गुजरने की तिथियां?
- 11. पायथन का उपयोग कर स्वरूपित पीडीएफ या ईपीएस तालिका कैसे उत्पन्न करें?
- 12. पायथन उत्पन्न पाइथन
- 13. वित्तीय Matplotlib पायथन ग्राफ में खाली तिथियां (सप्ताहांत) कैसे छोड़ें?
- 14. क्या jQuery का उपयोग करके पीडीएफ उत्पन्न करना संभव है?
- 15. पायथन में बहुत बड़ी एक्सएमएल फाइलें उत्पन्न करना?
- 16. पुनरावर्ती प्रश्नों के लिए सीटीई अनुकूलित करना
- 17. सी # का उपयोग कर स्ट्रिंग से बारकोड कैसे उत्पन्न करें?
- 18. पायथन का उपयोग कर बाह्य निष्पादन योग्य कैसे चलाएं?
- 19. मैं rspec का उपयोग कर नियंत्रक spec कैसे उत्पन्न करूं?
- 20. ज़ेंड संस्करण रिलीज तिथियां
- 21. जावास्क्रिप्ट का पता लगाने के मान्य तिथियां
- 22. उपयोग पुनरावर्ती आम तालिका भाव दो तालिकाओं
- 23. उत्पन्न यूएमएल चित्र NetBeans का उपयोग कर 7.2
- 24. ग्रहण का उपयोग कर mapping.txt कैसे उत्पन्न करें?
- 25. सिस्टम का उपयोग कर विस्तार विधियां उत्पन्न करें। कोडडॉम
- 26. ffmpeg का उपयोग कर एवी से gif कैसे उत्पन्न करें?
- 27. क्या प्रोग्रामिंग रूप से केवल सी # का उपयोग कर X509 प्रमाणपत्र उत्पन्न करना संभव है?
- 28. वर का उपयोग करना या वर का उपयोग नहीं कर
- 29. लाइसेंस उत्पन्न करना .licx
- 30. GUID उत्पन्न करना
आपने अभी तक क्या कोड लिखा है? कृपया आपके द्वारा लिखे गए कोड को पोस्ट करें। –