datetime.weekday, datetime.isoweekday का उपयोग कर सप्ताह की वर्तमान दिन मिलता है या अधिक पूर्ण datetime.isocalendar का उपयोग भी इस वर्ष के वर्तमान सप्ताह के प्राप्त करने के लिए करने के लिए और एक गठबंधन अंतर की गणना करने के ऑफसेट के रूप में उन का उपयोग करें।
def week_difference(start, end):
assert start <= end
start_year, start_week, start_dayofweek = start.isocalendar()
end_year, end_week, end_dayofweek = end.isocalendar()
return ((end_year - start_year) * 52) - start_week + end_week
उपयोग के साथ इस तरह
:
import datetime as dt
# same week
In [1]: week_difference(dt.datetime(2012, 8, 1), dt.datetime(2012, 8, 1))
Out[1]: 0
# your example (see note below)
In [2]: week_difference(dt.datetime(2012, 8, 1), dt.datetime(2012, 8, 13))
Out[2]: 2
# across years
In [3]: week_difference(dt.datetime(2011, 8, 1), dt.datetime(2012, 8, 13))
Out[3]: 54
# year boundary: second last business week of 2011, to first business week of 2012
# which is the same business week as the last business week of 2011
In [4]: week_difference(dt.datetime(2011, 12, 20), dt.datetime(2012, 1, 1))
Out[4]: 1
In [5]: week_difference(dt.datetime(2011, 12, 18), dt.datetime(2012, 1, 1))
Out[5]: 2
आप अपने क्या एक सप्ताह के अंतर का अर्थ चुना के आधार पर अपने सप्ताह उत्पादन के लिए 1
जोड़ सकते हैं
तो आप इस प्रकार का कार्य हो सकता है होना चाहिए।
अंत में यदि आप/अन्य से छुटकारा पा सकते हैं। बस पहला कथन वापस करें - यह तब काम करता है जब साल एक ही – jterrace
@jterrace आह है। वर्ष का हिस्सा उसी वर्ष शून्य हो जाता है। मैंने फ़ंक्शन टुकड़े टुकड़े का निर्माण किया और किसी भी तरह से यह ध्यान नहीं दिया। धन्यवाद। –