बस इसे देख, मैं तुम्हें करने की जरूरत है लगता है:
- पार्स प्रत्येक क्षेत्र के लिए स्वीकृत मान युक्त पांच सरणियों को chron कल्पना;
- पार्स 'अब' प्रत्येक फ़ील्ड के लिए मूल्य के लिए;
- मिनट, घंटे, के क्रम में {दिन के अनुसार महीने या दिन के सप्ताह}, महीने की साल: से मेल खाता है या वर्तमान मूल्य से अधिक है, कैरी के लिए सही करने न्यूनतम सरणी मान पाते हैं।
मुझे नहीं पता कि दिन-प्रति-सप्ताह और दिन-दर-दिन एक साथ कैसे संभालना है; मुझे यकीन है कि एक रास्ता है, लेकिन दूसरी तरफ मुझे नहीं लगता कि मैंने कभी एक ऐसा नमूना देखा है जो वास्तव में दोनों को निर्दिष्ट करता है। मुझे लगता है कि यदि आप दोनों प्राप्त करते हैं तो एक हैंडलर लिखना और त्रुटि को फेंकना पर्याप्त होगा।
संपादित करें: जाहिरा तौर पर करता है, तो दिन के सप्ताह और दिन के अनुसार महीने के दोनों निर्दिष्ट कर रहे हैं, यह दोनों पर गोली चलानी है - यानी अगर नियम '15 वीं, बुधवार' है यह पर सक्रिय होगा प्रत्येक बुधवार को हर 15 वीं और।
croniter पैकेज आप क्या चाहते हैं करता है:
import croniter
import datetime
now = datetime.datetime.now()
sched = '1 15 1,15 * *' # at 3:01pm on the 1st and 15th of every month
cron = croniter.croniter(sched, now)
for i in range(4):
nextdate = cron.get_next(datetime.datetime)
print nextdate
प्रिंट
2011-01-15 15:01:00
2011-02-01 15:01:00
2011-02-15 15:01:00
2011-03-01 15:01:00
हालांकि यह अच्छा होगा अगर यह एक वास्तविक इटरेटर के रूप में लिखा गया था। हो सकता है कि मैं अपने अगले प्रोजेक्ट ;-)
स्रोत
2011-01-06 02:13:14
मैंने ऐसा कुछ किया है, और इसे सही पाने के लिए मुश्किल लगता है (और मेरी संभव "चश्मा" आपके सबसेट हैं)। मैंने बस कुछ डेटाटाइम कैल्क्स और spec के प्रत्येक 'प्रकार' के लिए फ़ंक्शंस के साथ किया। मुझे दिलचस्पी है अगर किसी के पास कोई बेहतर जवाब है (समाधान शायद लाइब्रेरी का उपयोग करेगा: x) – Gerrat
क्या आप spec प्रारूप का उदाहरण दे सकते हैं? – aaronasterling