"Passing Go" in a (python) date range -
अपरिवर्तनीय पाठ और अस्पष्टता को हटाने के लिए अद्यतन।
नियम: < प्रत्येक तिमाही के एक दिन के बाद एक कर्मचारी 8 घंटे का भुगतान समय बजे अर्जित करता है।
def acrued_hours_between (start_date, end_date): # सामग्री वापसी पूर्णांक
मैं वर्तमान में अजगर का उपयोग कर रहा हूं, और सोच रहा हूँ कि ऐसा कुछ करने के लिए सही दृष्टिकोण क्या होगा। / Strong>
मैं मान रहा हूं कि दिनांक समय वस्तुओं का उपयोग करना और संभवतः डेटियिल मॉड्यूल यहां मदद करेगा, लेकिन मेरे दिमाग में किसी कारण के लिए इस समस्या के आसपास लपेट नहीं रहा है।
अपडेट
मैं सोचता हूं कि गणना कुछ हद तक सरल है, क्योंकि समस्या यह है:
"शुरूआती समय से कितने घंटे भुगतान समय बंद अर्जित किए जाते हैं एंड_डेट के लिए? " उपरोक्त "नियम" को दिया गया।
ओपी के संपादन में वास्तविक अंतर्निहित समस्या का उल्लेख है:
"पेड टाइम ऑफ के कितने घंटे एक्स-डेट से वाई-डेट तक अर्जित किए जाते हैं?"
मैं सहमत हूं, और मैं यह सीधा गणना करता हूं और सीधा तरीके से, जैसे:
<प्री> आयात करें datetime आयात itertools accrual_months_days = (1,1), (4,1), (7,1), (10,1) def accruals (begin_date, End_date, hours_per = 8): "" "आरंभ और समाप्ति_डेटा के बीच हुई अवकाश।" "Cur_year = start_date.year - 1 के लिए परिणाम = 0 मीटर, डी itertools.cycle (accrual_months_days): अगर m == 1: cur_year + = 1 d = datetime.date (cur_year, m, d) अगर डी & lt; Start_date: जारी रखें अगर डी & gt; End_date: रिटर्न परिणाम परिणाम + = घंटे_पर अगर __name__ == '__main__': # उदाहरणों को मुद्रित उपायों (datetime.date (2010, 1, 12), datetime.date (2010, 9, 20)) प्रिंट प्रोरायल्स (datetime.date ( 2010, 4, 20), datetime.date (2012, 12, 21)) प्रिंट प्राप्तियां (datetime.date (2010, 12, 21), datetime.date (2012, 4, 20))
एक प्रत्यक्ष सूत्र निश्चित रूप से तेजी से होगा, लेकिन बग़ों के बिना ऐसा करने के लिए मुश्किल हो सकता है - अगर कुछ नहीं, तो यह "निरीक्षण द्वारा सही" उदाहरण के लिए स्वचालित रूप से स्वचालित रूप से जांचने के लिए, तारीख जोड़े का एक बड़ा नमूना (बाद के सभी कोने वाले मामलों में शामिल होना सुनिश्चित करें जैसे कि प्रथम और अंतिम क्वार्टर के दिनों)।
Comments
Post a Comment