Python البرنامج التعليمي للتقويم مع مثال
وحدة التقويم في Python يحتوي على فئة التقويم التي تسمح بحسابات المهام المختلفة بناءً على التاريخ والشهر والسنة. علاوة على ذلك، يتم تضمين فئة TextCalendar وHTMLCalendar Python يسمح لك بتحرير التقويم واستخدامه وفقًا لمتطلباتك.
دعونا نرى ما يمكننا القيام به مع Python التقويم.
الخطوة 1) قم بتشغيل الكود.
- Code السطر رقم 1: نبدأ بـ "استيراد التقويم" الذي سيستورد جميع فئات هذه الوحدة.
- Code السطر رقم 3: c= calendar.TextCalendar(calendar.SUNDAY) يُخبر المُفسِّر بإنشاء تقويم نصي. بداية الشهر ستكون يوم الأحد. Python، يمكنك تنسيق التقويم كما يمكنك تغيير يوم الشهر للبدء به
- Code السطر رقم 4: str= c.formatmonth(2025,1) نقوم بإنشاء تقويم لعام 2025، الشهر 1 - يناير
- Code السطر رقم 5: print str سيقوم بطباعة الناتج.
دعونا نغير القيمة بسرعة من الأحد إلى الخميس ونتحقق من النتيجة
الخطوة 2) يمكنك أيضًا طباعة التقويم بتنسيق HTML، وهذه الميزة مفيدة للمطورين إذا كانوا يريدون إجراء أي تغييرات في شكل ومظهر التقويم
الخطوة 3) الحلقات على مدار أيام الشهر باستخدام c.itermonthday (2025,4)، سيتم جلب إجمالي عدد الأيام لذلك الشهر.
- عند تنفيذ الكود للحصول على إجمالي عدد الأيام لشهر معين قل "أبريل" فستحصل على 30 يومًا في الإخراج ولكنك سترى أيضًا بعض الأصفار مع هذه الأيام في البداية وأحيانًا في نهايته .
- تشير الأصفار في الناتج إلى أن يوم الأسبوع متداخلping الشهر، مما يعني أنه لا ينتمي إلى ذلك الشهر.
- تظهر هذه الأصفار في المخرجات لأنك ذكرت اليوم (الخميس) في الكود الخاص بك، لذلك عند استدعاء الدالة "c.itermonthdays"، ستبدأ في حساب الأيام من يوم الخميس وقد لا يبدأ يوم الخميس بالتاريخ 1st من أبريل قد يكون 28th أو 29th من شهر مارس، لذلك عند تنفيذ التعليمات البرمجية، سيبدأ حساب الأيام من 28th مارس وأي أيام بعد ذلك حتى 1st من ابريل. سيتم احتساب هذه الأيام على أنها صفر وفي الإخراج سترى هذه الأصفار وينطبق الشيء نفسه على نهاية الشهر.
- لذلك، باستثناء التاريخ 1-30، ستظهر جميع التواريخ من الشهر السابق وكذلك بعد الشهر في الإخراج كأصفار.
الخطوة 4) يمكنك جلب البيانات من النظام المحلي، مثل الأشهر أو أيام الأسبوع، وما إلى ذلك
- يُظهِر الناتج هنا أننا قمنا بطباعة اسم الأشهر من النظام المحلي. وبالمثل، يمكنك أيضًا جلب اسم أيام الأسبوع كما هو موضح أدناه
-
سيعتمد الإخراج على النظام المحلي، لنفترض أنه إذا كان نظامك المحلي هو بعض البلدان الأخرى، فسوف يعطي الإخراج وفقًا للإعدادات المحلية لذلك البلد. لدينا هنا أشهر، لذلك لن يكون هناك فرق، لكن إذا كانت أسبوعًا أو يومًا، فسيختلف بالتأكيد.
الخطوة 5) يمكنك جلب قائمة اليوم المحدد لمدة عام كامل. على سبيل المثال، هناك يوم تدقيق في كل يوم أول Monday من اسبوع. تريد أن تعرف التاريخ الأول Monday لكل شهر. يمكنك استخدام هذا الرمز
- mycal = Calendar.monthcalendar(2025,month) سيقوم بإنشاء تقويم لهذا الشهر
- قم بتعيين المتغيرات Week1 وweek2 إلى الأسبوع الأول والثاني من التقويم
- تحقق مما إذا كان الأسبوع الأول يحتوي على Monday، حدد يوم التدقيق
- وإلا قم بتعيين يوم التدقيق كأول يوم Monday في الاسبوع 2
- يظهر الإخراج تاريخ الأول Monday الذي يقع في ذلك الشهر.
- سيكون طول كائن Cal هذا طولًا معينًا، بناءً على عدد الأسابيع الموجودة في الشهر. في حالتنا، سيكون واحدًا أو اثنين على هذا النحو أولاً Monday سيكون الأسبوع في الأسبوع الأول في أغلب الأحيان، ولكن إذا لم يكن الأمر كذلك، ففكر في الأسبوع الثاني. دعونا نرى بالتفصيل لماذا نفكر أيضًا في الأسبوع الثاني.
- نحن هنا نستخدم ثابت التقويم Monday، يمنحك كائن التقويم ثوابت تمثل يوم الأحد، Monday، الثلاثاء، وهكذا، وهكذا دواليك. لقد رأينا هذه من قبل. لذا، إذا كان اليوم الذي يمثله في الأسبوع الأول Monday الثابت لا يساوي 0، تذكر أن الأصفار تعني الأيام التي تنتمي إلى شهر آخر. لذا، في هذه الحالة، إذا كانت صفرًا، فستكون أ Monday الذي ينتمي إلى الشهر السابق. ولكن إذا كان الأول Monday لا يساوي 0، وهذا يعني أن يوم التدقيق الخاص بي سيكون خلال الأسبوع الأول. وإلا، إذا كان 0، فإن اليوم الأول Monday ليس في الأسبوع الأول من الشهر، بل يجب أن يكون في الأسبوع الثاني.
- لذلك، ثم أقول حسنًا، قم بتعيين متغير يوم التدقيق الخاص بي ليكون Monday ممثلة بالأسبوع الثاني. لذلك، سيعود يوم التدقيق مهما كان اليوم للأسبوع الأول أو الثاني.
ها هو الكود الكامل
Python 2 مثال
import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print str
# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print str
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
print i
# The calendar can give info based on local such a names of days and months (full and abbreviated forms)
for name in calendar.month_name:
print name
for day in calendar.day_name:
print day
# calculate days based on a rule: For instance an audit day on the second Monday of every month
# Figure out what days that would be for each month, we can use the script as shown here
for month in range(1, 13):
# It retrieves a list of weeks that represent the month
mycal = calendar.monthcalendar(2025, month)
# The first MONDAY has to be within the first two weeks
week1 = mycal[0]
week2 = mycal[1]
if week1[calendar.MONDAY] != 0:
auditday = week1[calendar.MONDAY]
else:
# if the first MONDAY isn't in the first week, it must be in the second week
auditday = week2[calendar.MONDAY]
print "%10s %2d" % (calendar.month_name[month], auditday)
Python 3 مثال
import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print(str)
# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print(str)
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
print(i)
# The calendar can give info based on local such a names of days and months (full and abbreviated forms)
for name in calendar.month_name:
print(name)
for day in calendar.day_name:
print(day)
# calculate days based on a rule: For instance an audit day on the second Monday of every month
# Figure out what days that would be for each month, we can use the script as shown here
for month in range(1, 13):
# It retrieves a list of weeks that represent the month
mycal = calendar.monthcalendar(2025, month)
# The first MONDAY has to be within the first two weeks
week1 = mycal[0]
week2 = mycal[1]
if week1[calendar.MONDAY] != 0:
auditday = week1[calendar.MONDAY]
else:
# if the first MONDAY isn't in the first week, it must be in the second week
auditday = week2[calendar.MONDAY]
print("%10s %2d" % (calendar.month_name[month], auditday))
ملخص
- In Python، يمكنك تنسيق التقويم بالطريقة التي تريدها كما يمكنك تغيير يوم الشهر للبدء
- اطبع التقويم بتنسيق HTML
- جلب البيانات من النظام المحلي، مثل الأشهر أو أيام الأسبوع
- جلب قائمة اليوم المحدد لمدة عام كامل







