পাইথনে সপ্তাহের নম্বর কীভাবে পাবেন?


339

পাইথনের সাথে 16 ই জুন (ডাব্লু ডাব্লু 24) চলতি বছরের কোন সপ্তাহের সংখ্যাটি কীভাবে খুঁজে বের করবেন?


1
@ ডোনাল: একজনের জুন 16, অন্যটি 26 জুন দেখুন
ইন্টারজয়

5
সপ্তাহ 1 নির্ধারণ করুন। আইসোক্যাল্যাডার () এটি করার একমাত্র উপায় নয়।
মার্ক টোলোনেন

3
নোট করুন যে এর ফলাফল আউটপুট strftime("%U", d)থেকে পৃথক হতে পারে isocalendar()। উদাহরণস্বরূপ আপনি যদি বছরটি 2004 এ পরিবর্তন করেন তবে আপনি সপ্তাহের 24 ব্যবহার করে strftime()এবং সপ্তাহে 25 ব্যবহার করে পাবেন isocalendar()
মূইলিপ

উত্তর:


409

datetime.dateএকটি isocalendar()পদ্ধতি আছে, যা ক্যালেন্ডার সপ্তাহ সহ একটি টুপল ফেরত দেয়:

>>> import datetime
>>> datetime.date(2010, 6, 16).isocalendar()[1]
24

ডেটটাইম.ডেট.আইসোক্যালেন্ডার () হ'ল একটি উদাহরণ-পদ্ধতি যা প্রদত্ত তারিখের উদাহরণের জন্য সংশ্লিষ্ট ক্রমে বছর, সাপ্তাহিক সংখ্যা এবং সপ্তাহের দিন সমন্বিত একটি টুপল ফেরত দেয়।


7
আপনি যদি ' [1]' ব্যাখ্যা করেছেন বা তথ্যটি কোথায় সন্ধান করবেন তা কোনও নির্দেশক দিলে এটি সহায়তা করবে।
জোনাথন লেফলার

5
আমার ধারণা সবচেয়ে সহজ হ'ল স্ট্রফটাইম ব্যবহার করে সপ্তাহের সংখ্যাটি উত্তোলন করা, সেরা আমদানির তারিখটাইম আজ = ডেটটাইম.নো () সপ্তাহ = আজ।স্ট্রিটাইম ("% ডাব্লু")
বিপসা

7
এই একটু দেরি। তবে আমার মেশিনে, date(2010, 1, 1).isocalendar()[1]ফিরে আসে 53। দস্তাবেজগুলি থেকে: "উদাহরণস্বরূপ, ২০০৪ একটি বৃহস্পতিবার থেকে শুরু হয়, সুতরাং আইএসও বছরের 2004 এর প্রথম সপ্তাহটি সোমবার, 29 ডিসেম্বর 2003 এ শুরু হয় এবং রবিবার, 4 জানুয়ারী 2004 এ শেষ হয়, যাতে date(2003, 12, 29).isocalendar() == (2004, 1, 1)এবং date(2004, 1, 4).isocalendar() == (2004, 1, 7)" "
jclancy

17
isocalendar()দুর্দান্ত, তবে আপনি যা চান তা নিশ্চিত হন। আজ একটি নিখুঁত উদাহরণ। 01/01/2016 এর সমান (2015, 53, 5)now.strftime("%W")এবং now.strftime("%U")সমান 00যা প্রায়শই যা চায় তাই হয়। কৌশলগত উদাহরণ
ডেভএল 17

খুব সুন্দর, আমি এখনই যুক্ত করেছি যে আমি মনে করি এটি সহায়ক হবে, এটি ছিল আমি যা যা
শেখাচ্ছিলাম

124

স্ট্রিং হিসাবে ডেটটাইম থেকে আপনি সপ্তাহের নম্বরটি সরাসরি পেতে পারেন।

>>> import datetime
>>> datetime.date(2010, 6, 16).strftime("%V")
'24'

এছাড়াও আপনি এই বছরের strftimeজন্য পরামিতি পরিবর্তন করে সপ্তাহের সংখ্যার বিভিন্ন "প্রকার" পেতে পারেন :

%U- বছরের সপ্তাহের সংখ্যা (সপ্তাহের প্রথম দিন হিসাবে রবিবার) শূন্য প্যাডযুক্ত দশমিক সংখ্যা হিসাবে। প্রথম রবিবারের আগের কোনও নতুন বছরের সমস্ত দিনকে সপ্তাহে 0 হিসাবে গণ্য করা হয় amples উদাহরণ: 00 , 01,…, 53

%W- দশমিক সংখ্যা হিসাবে বছরের সপ্তাহের সংখ্যা (সপ্তাহের প্রথম দিন হিসাবে সোমবার )। প্রথম সোমবারের আগের কোনও নতুন বছরের সমস্ত দিনকে সপ্তাহে 0 হিসাবে গণ্য করা হয় amples উদাহরণ: 00 , 01,…, 53

[...]

( পাইথন ৩.6-এ যোগ করা হয়েছে, কিছু বিতরণের পাইথন ২.7 এর ব্যাকপোর্ট করা হয়েছে ) সুবিধার জন্য সি 89 স্ট্যান্ডার্ড দ্বারা প্রয়োজনীয় নয় এমন বেশ কয়েকটি অতিরিক্ত নির্দেশ অন্তর্ভুক্ত রয়েছে। এই পরামিতিগুলি সমস্ত আইএসও 8601 তারিখের মানের সাথে মিলে যায়। পদ্ধতিটির সাথে ব্যবহার করার সময় এগুলি সমস্ত প্ল্যাটফর্মে উপলব্ধ নাও হতে পারে strftime()

[...]

%V- আইএসও 8601 সপ্তাহ দশমিক সংখ্যা হিসাবে সপ্তাহের প্রথম দিন হিসাবে সোমবার। সপ্তাহ 01 হল 4 জানুয়ারী সমেত সপ্তাহ। উদাহরণ: 01 , 02,…, 53

থেকে: তারিখের সময় - বেসিক তারিখ এবং সময় প্রকার - পাইথন 3.7.3 ডকুমেন্টেশন

আমি এখান থেকে এটি সম্পর্কে জানতে পেরেছি । এটি পাইথন ২.7..6 এ আমার জন্য কাজ করেছিল


আপনি কিছু উদ্ধৃত করছেন, কিছু লিনাক্স ম্যানুয়াল? পাইথন 2.7.5 এবং 3.3.2 Invalid format stringএই প্যাটার্নটিকে বলে। তাদের দস্তাবেজগুলিতেও কোনও উল্লেখ নেই %V
ভেসিভলড গোলভানভ

3
দুঃখিত আমি এটা, আমি থেকে পেয়েছেন উল্লেখ না এখানে । এটি পাইথন ২.7..6 এ আমার জন্য কাজ করেছিল।
জোতাকর

2
দুর্দান্ত উত্তর! আমি এটি যুক্ত করতে চাই আপনি যদি আপনার তারিখগুলির '<YEAR> - <ISOWEEK>' উপস্থাপনে আগ্রহী হন তবে %G-%Vপরিবর্তে ব্যবহার করুন %Y-%V%Gআইএসও বছরের সমতুল্য%Y
কেনএইচবিএস

এটি কাজ করার জন্য আমাকে এটি লিখতে হয়েছিল: ডেটটাইম.ডেটটাইম (2010, 6, 16) ("% ভি")
আইনার

77

আমি বিশ্বাস করি date.isocalendar()এর উত্তর হতে চলেছে। এই নিবন্ধটি আইএসও 8601 ক্যালেন্ডারের পিছনে গণিত সম্পর্কে ব্যাখ্যা করেছে। এর date.isocalendar () অংশ পরীক্ষা করে দেখুন DATETIME পৃষ্ঠা পাইথন নথিপত্রের।

>>> dt = datetime.date(2010, 6, 16) 
>>> wk = dt.isocalendar()[1]
24

.আইসোক্যালেন্ডার () বছর (সপ্তাহ, সপ্তাহের দিন, সপ্তাহ dt.isocalendar()[0]বছরটি dt.isocalendar()[1]ফেরত দেয়, সপ্তাহের নম্বর দেয়, dt.isocalendar()[2]সপ্তাহের দিনটি ফেরত দেয়। সহজ হতে পারে।


4
লিঙ্কটির জন্য +1 যা আইএসও সপ্তাহের স্বজ্ঞাত স্বভাবের ব্যাখ্যা দেয়।
মার্ক রান্সম

27

এখানে আরও একটি বিকল্প রয়েছে:

import time
from time import gmtime, strftime
d = time.strptime("16 Jun 2010", "%d %b %Y")
print(strftime("%U", d))

যা কপি করে প্রিন্ট 24

দেখুন: http://docs.python.org/library/datetime.html#strftime-and-strptime-behaviour


9
অথবা% W যদি আপনার সপ্তাহগুলি সোমবার থেকে শুরু হয়।
ZeWaren

1
আপনি যদি স্ট্রিং হিসাবে আসে এমন কোনও তারিখকে বিভক্ত করতে বা রূপান্তর করতে চান না এমন ক্ষেত্রে এই পদ্ধতিটি আরও ভাল just ভাল সমাধান। মনে রাখবেন:% W যদি সোমবার থেকে শুরু হয় starts
কারকিরিয়াস

22

অন্যদের দ্বারা প্রস্তাবিত আইএসও সপ্তাহটি একটি ভাল, তবে এটি আপনার প্রয়োজনের সাথে খাপ খায় না। এটি ধরে নিয়েছে যে প্রতি সপ্তাহে সোমবার দিয়ে শুরু হয়, যা বছরের শুরু এবং শেষের দিকে কিছু আকর্ষণীয় ব্যতিক্রমী দিকে নিয়ে যায়।

আপনি যদি বরং এমন সংজ্ঞা ব্যবহার করতে চান যা সপ্তাহের দিন নির্বিশেষে সপ্তাহ 1 এ সর্বদা 1 জানুয়ারি থেকে 7 জানুয়ারীর মধ্যে থাকে তবে এই জাতীয় উপকরণটি ব্যবহার করুন:

>>> testdate=datetime.datetime(2010,6,16)
>>> print(((testdate - datetime.datetime(testdate.year,1,1)).days // 7) + 1)
24

3
এই বলে যে বছরের শুরুতে এবং শেষে আইসোক্ল্যাডারের "কিছু আকর্ষণীয় ব্যতিক্রম" রয়েছে বলে মনে হয় এটি কিছুটা হ্রাস করা যায় না। 29 ডিসেম্বর, 2014, 00:00:00 এর মতো কিছু তারিখের মানগুলির জন্য আইসোক্যান্ডারের ফলাফলগুলি খুব বিভ্রান্তিমূলক (এমনকি আইএসও স্পেসিফিকেশনের অধীনে ভুল না হলেও), যা আইসোক্যাল্যাডার অনুসারে এক বছরের মূল্য হয় 2015 এবং 1 সপ্তাহের সংখ্যা (দেখুন) আমার প্রবেশ নীচে)।
কেভিন

3
@ কেভিন, এটি ভুল নয়, এটি কেবলমাত্র তাদের সংজ্ঞা আপনার সাথে মেলে না। আইএসও দুটি জিনিস স্থির করে: প্রথমটি হ'ল সোমবার থেকে রবিবার পর্যন্ত পুরো সপ্তাহটি একই বছরে থাকত, দ্বিতীয় যে বেশিরভাগ দিনগুলিতে একটি বছর নির্ধারিত হবে। এটি বছরের শুরু এবং শেষের দিকে, যা সংলগ্ন বছরে চলে around
মার্ক রান্সম

6
একমত। তবে বেশিরভাগ মানুষের সংজ্ঞা অনুসারে ২৯ শে ডিসেম্বর ২০১৪ হ'ল 2015 সালের প্রথম সপ্তাহটি হবে না I আমি কেবল বিভ্রান্তির এই সম্ভাব্য উত্সের দিকে দৃষ্টি আকর্ষণ করতে চেয়েছিলাম।
কেভিন

আমি ঠিক এটিই খুঁজছিলাম। এটি কীভাবে করবেন তা নয়, আইএসও সম্পর্কিত তথ্য এবং সোমবারের জিনিসটি দিয়ে শুরু করা।
অমিত আমোলা

19

সাধারণত বর্তমান সপ্তাহের নম্বর পেতে (রবিবার থেকে শুরু):

from datetime import *
today = datetime.today()
print today.strftime("%U")

4
স্টাফটাইম ('% ইউ') এর ডকুমেন্টেশন থেকে: "বছরের সপ্তাহের সংখ্যা (সপ্তাহের প্রথম দিন হিসাবে রবিবার) দশমিক সংখ্যা হিসাবে [00,53]। প্রথম রবিবারের আগের নতুন বছরের সমস্ত দিন বিবেচনা করা হয় সপ্তাহে 0 হতে হবে। "
দোলান অ্যান্টিনিচি

14

বছরের তাত্ক্ষণিক সপ্তাহের পূর্ণসংখ্যার মানটির জন্য চেষ্টা করুন:

import datetime
datetime.datetime.utcnow().isocalendar()[1]

10

আছে সপ্তাহে সংখ্যায়ন জন্য অনেক ব্যবস্থা । নিম্নলিখিত কোডগুলির উদাহরণ সহ সাধারণভাবে নিম্নরূপ দেওয়া হল:

  • আইএসও : প্রথম সপ্তাহ সোমবার থেকে শুরু হয় এবং অবশ্যই 4 জানুয়ারী থাকতে হবে contain আইএসও ক্যালেন্ডারটি ইতিমধ্যে পাইথনে প্রয়োগ করা হয়েছে:

    >>> from datetime import date
    >>> date(2014, 12, 29).isocalendar()[:2]
    (2015, 1)
  • উত্তর আমেরিকা : প্রথম সপ্তাহটি রবিবার থেকে শুরু হয় এবং অবশ্যই 1 লা জানুয়ারী থাকতে হবে। নিম্নলিখিত কোডটি উত্তর আমেরিকার সিস্টেমের জন্য পাইথনের আইএসও ক্যালেন্ডার প্রয়োগের আমার পরিবর্তিত সংস্করণ:

    from datetime import date
    
    def week_from_date(date_object):
        date_ordinal = date_object.toordinal()
        year = date_object.year
        week = ((date_ordinal - _week1_start_ordinal(year)) // 7) + 1
        if week >= 52:
            if date_ordinal >= _week1_start_ordinal(year + 1):
                year += 1
                week = 1
        return year, week
    
    def _week1_start_ordinal(year):
        jan1 = date(year, 1, 1)
        jan1_ordinal = jan1.toordinal()
        jan1_weekday = jan1.weekday()
        week1_start_ordinal = jan1_ordinal - ((jan1_weekday + 1) % 7)
        return week1_start_ordinal
    >>> from datetime import date
    >>> week_from_date(date(2014, 12, 29))
    (2015, 1)
  • এমএমডাব্লুআর (সিডিসি) : প্রথম সপ্তাহটি রবিবার থেকে শুরু হয় এবং অবশ্যই 4 জানুয়ারী থাকতে হবে। আমি এপিউইকস প্যাকেজটি তৈরি করেছি বিশেষত এই সংখ্যায়ন পদ্ধতির জন্য (আইএসও সিস্টেমের জন্য সমর্থনও রয়েছে)। এখানে একটি উদাহরণ:
    >>> from datetime import date
    >>> from epiweeks import Week
    >>> Week.fromdate(date(2014, 12, 29))
    (2014, 53)

8

আপনি যদি পুরো বোর্ড জুড়ে কেবল আইসোক্যান্ডার সপ্তাহের নম্বরটি ব্যবহার করেন তবে নিম্নলিখিতগুলি পর্যাপ্ত হওয়া উচিত:

import datetime
week = date(year=2014, month=1, day=1).isocalendar()[1]

এটি আমাদের সপ্তাহের সংখ্যার জন্য আইসোক্ল্যাডারে ফিরে আসা টিপলের দ্বিতীয় সদস্যকে পুনরুদ্ধার করে।

তবে, আপনি যদি গ্রেগরিয়ান ক্যালেন্ডারে ডেট ফাংশনগুলি ব্যবহার করতে যাচ্ছেন তবে আইসোক্ল্যাভার একা কাজ করবে না! নিম্নলিখিত উদাহরণটি ধরুন:

import datetime
date = datetime.datetime.strptime("2014-1-1", "%Y-%W-%w")
week = date.isocalendar()[1]

এখানে স্ট্রিং আমাদের তারিখ হিসাবে 2014 এর প্রথম সপ্তাহের সোমবার ফিরে আসতে বলেছে। আমরা যখন এখানে সপ্তাহের নম্বরটি পুনরুদ্ধার করতে আইসোক্যান্ডার ব্যবহার করি, আমরা একই সপ্তাহের নম্বরটি ফিরে পাওয়ার আশা করব, কিন্তু আমরা তা করি না। পরিবর্তে আমরা ২ সপ্তাহের সংখ্যা পাই Why কেন?

গ্রেগরিয়ান ক্যালেন্ডারে সপ্তাহ 1 হ'ল প্রথম সপ্তাহে সোমবার থাকে। আইসোক্ল্যাডারে সপ্তাহ 1 হ'ল প্রথম সপ্তাহে বৃহস্পতিবার থাকে। 2014 এর শুরুতে আংশিক সপ্তাহে একটি বৃহস্পতিবার থাকে, সুতরাং এটি আইসোক্ল্যাভারের 1 সপ্তাহ, এবং dateসপ্তাহ 2 তৈরি করে।

আমরা যদি গ্রেগরিয়ান সপ্তাহ পেতে চাই, আমাদের আইসোক্যাল্যাডার থেকে গ্রেগরিয়ানে রূপান্তর করতে হবে। এখানে একটি সাধারণ ফাংশন যা কৌশলটি করে।

import datetime

def gregorian_week(date):
    # The isocalendar week for this date
    iso_week = date.isocalendar()[1]

    # The baseline Gregorian date for the beginning of our date's year
    base_greg = datetime.datetime.strptime('%d-1-1' % date.year, "%Y-%W-%w")

    # If the isocalendar week for this date is not 1, we need to 
    # decrement the iso_week by 1 to get the Gregorian week number
    return iso_week if base_greg.isocalendar()[1] == 1 else iso_week - 1

6

আপনি নীচের মত% W নির্দেশিকা চেষ্টা করতে পারেন:

d = datetime.datetime.strptime('2016-06-16','%Y-%m-%d')
print(datetime.datetime.strftime(d,'%W'))

'% ডাব্লু': বছরের দশমিক সংখ্যা (সপ্তাহের প্রথম দিন হিসাবে সোমবার) দশমিক সংখ্যা হিসাবে। প্রথম সোমবারের আগের কোনও নতুন বছরের সমস্ত দিন 0. সপ্তাহে গণ্য করা হয় (00, 01, ..., 53)


2

আইসোক্যাল্যাডার () কিছু তারিখের জন্য ভুল বছর এবং সাপ্তাহিক মানগুলি দেয়:

Python 2.7.3 (default, Feb 27 2014, 19:58:35) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime as dt
>>> myDateTime = dt.datetime.strptime("20141229T000000.000Z",'%Y%m%dT%H%M%S.%fZ')
>>> yr,weekNumber,weekDay = myDateTime.isocalendar()
>>> print "Year is " + str(yr) + ", weekNumber is " + str(weekNumber)
Year is 2015, weekNumber is 1

মার্ক র্যানসমের পদ্ধতির সাথে তুলনা করুন:

>>> yr = myDateTime.year
>>> weekNumber = ((myDateTime - dt.datetime(yr,1,1)).days/7) + 1
>>> print "Year is " + str(yr) + ", weekNumber is " + str(weekNumber)
Year is 2014, weekNumber is 52

3
Iso8601 ক্যালেন্ডার সম্পর্কিত কয়েকটি লিঙ্কগুলি (উদাহরণস্বরূপ, स्टाफ.সায়েন্স.ইউ.এনএল / ~জেন্ট0113 / clare / isococolate.htm ) সম্পর্কে দেখছি, আমি দেখতে পাচ্ছি যে বছর এবং সাপ্তাহিক সংখ্যাগুলি আইসোক্ল্যাভার () দ্বারা ফিরিয়ে দেওয়া হয়েছে যেমন "ভুল" নয়। উদাহরণস্বরূপ, আইএসও ৮60০১ এর অধীনে, ২০০৪ সালের ২৯ শে ডিসেম্বর, ২০০৩ সালে 2004 শুরু হয়েছিল So সুতরাং আইসোক্ল্যাচার () ডিসেম্বর ২৯, ২০১৪ এর জন্য ২০১৫ সালের কোনও বছর ফিরে আসার ক্ষেত্রে সঠিক হতে পারে তবে অনেক লোকের উদ্দেশ্যে, এটি বেশ বিভ্রান্তিকর হতে চলেছে ।
কেভিন

2

আমি আলোচনার দুটি পদক্ষেপের সংক্ষিপ্তসার:

  1. কাঁচা বিন্যাসকে কোনও datetimeবস্তুতে রূপান্তর করুন ।
  2. সপ্তাহের সংখ্যা গণনা করতে কোনও datetimeঅবজেক্ট বা কোনও dateঅবজেক্টের ফাংশন ব্যবহার করুন ।

গা গরম করা

`` পাইথন

from datetime import datetime, date, time
d = date(2005, 7, 14)
t = time(12, 30)
dt = datetime.combine(d, t)
print(dt)

``

প্রথম পদক্ষেপ

ম্যানুয়ালি কোনও datetimeবস্তু উত্পন্ন করতে আমরা ব্যবহার করতে পারি datetime.datetime(2017,5,3)বা datetime.datetime.now()

তবে বাস্তবে, আমাদের সাধারণত একটি বিদ্যমান স্ট্রিং পার্স করা দরকার। আমরা strptimeফাংশনটি ব্যবহার করতে পারি , যেমন datetime.strptime('2017-5-3','%Y-%m-%d')আপনার ফর্ম্যাটটি নির্দিষ্ট করতে হবে। অফিসিয়াল ডকুমেন্টেশনে বিভিন্ন ফর্ম্যাট কোডের বিস্তারিত পাওয়া যাবে ।

বিকল্পভাবে, আরও সুবিধাজনক উপায় হ'ল ডেট পার্স মডিউলটি ব্যবহার করা । উদাহরণগুলি হ'ল dateparser.parse('16 Jun 2010'), dateparser.parse('12/2/12')বাdateparser.parse('2017-5-3')

উপরের দুটি পদ্ধতির কোনও datetimeবস্তু ফিরে আসবে ।

২ য় পদক্ষেপ

datetimeকল করতে প্রাপ্ত বস্তুটি ব্যবহার করুন strptime(format)। উদাহরণ স্বরূপ,

`` পাইথন

dt = datetime.strptime('2017-01-1','%Y-%m-%d') # return a datetime object. This day is Sunday
print(dt.strftime("%W")) # '00' Monday as the 1st day of the week. All days in a new year preceding the 1st Monday are considered to be in week 0.
print(dt.strftime("%U")) # '01' Sunday as the 1st day of the week. All days in a new year preceding the 1st Sunday are considered to be in week 0.
print(dt.strftime("%V")) # '52' Monday as the 1st day of the week. Week 01 is the week containing Jan 4.

``

কোন ফর্ম্যাটটি ব্যবহার করবেন তা সিদ্ধান্ত নেওয়া খুব জটিল। একটি ভাল উপায় হ'ল একটি dateজিনিস কল করার জন্য isocalendar()। উদাহরণ স্বরূপ,

`` পাইথন

dt = datetime.strptime('2017-01-1','%Y-%m-%d') # return a datetime object
d = dt.date() # convert to a date object. equivalent to d = date(2017,1,1), but date.strptime() don't have the parse function
year, week, weekday = d.isocalendar() 
print(year, week, weekday) # (2016,52,7) in the ISO standard

``

বাস্তবে, আপনি date.isocalendar()সাপ্তাহিক প্রতিবেদন তৈরি করতে ব্যবহার করার সম্ভাবনা বেশি পাবেন , বিশেষত "ক্রিসমাস-নিউ ইয়ার" শপিংয়ের মরসুমে।


0
userInput = input ("Please enter project deadline date (dd/mm/yyyy/): ")

import datetime

currentDate = datetime.datetime.today()

testVar = datetime.datetime.strptime(userInput ,"%d/%b/%Y").date()

remainDays = testVar - currentDate.date()

remainWeeks = (remainDays.days / 7.0) + 1


print ("Please pay attention for deadline of project X in days and weeks are  : " ,(remainDays) , "and" ,(remainWeeks) , "Weeks ,\nSo  hurryup.............!!!") 

-1

প্রচুর উত্তর দেওয়া হয়েছে, তবে আইডি তাদের যুক্ত করতে পছন্দ করে।

আপনার যদি বছর / সপ্তাহের শৈলী হিসাবে প্রদর্শিত সপ্তাহের প্রয়োজন হয় (উদাহরণস্বরূপ 1953 - 2019 সালের সপ্তাহের 53, 2001 - 2020 এর 1 সপ্তাহ ইত্যাদি), আপনি এটি করতে পারেন:

import datetime

year = datetime.datetime.now()
week_num = datetime.date(year.year, year.month, year.day).strftime("%V")
long_week_num = str(year.year)[0:2] + str(week_num)

এটি চলতি বছর এবং সপ্তাহে সময় নেবে, এবং এটি লেখার দিন দীর্ঘ_উইক_নিম হবে:

>>> 2006

date()স্ক্র্যাচ থেকে কেন তৈরি করবেন ? datetime.datetime()দৃষ্টান্তগুলির .date()সেই কাজের জন্য একটি পদ্ধতি রয়েছে।
মার্টিজন পিটারস

তবে আরও উদ্বেগজনকভাবে হ'ল আপনার উত্তরটি বর্তমান বছরটি নয়, সেঞ্চুরি করেছে । এবং আপনি যদি সপ্তাহের সংখ্যার জন্য স্ট্রিং ফর্ম্যাটিং ব্যবহার করতে চলেছেন, তবে কেন সেই বছরটি অন্তর্ভুক্ত করার জন্য এটি ব্যবহার করবেন না?
মার্টিজন পিটারস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.