وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

مقدمه ای بر ماژول تقویم پایتون

0 21
زمان لازم برای مطالعه: 12 دقیقه


معرفی

پایتون یک ماژول داخلی به نام دارد Calendar که شامل کلاس ها و توابع مفید برای پشتیبانی از انواع عملیات تقویم است. به طور پیش فرض، Calendar ماژول از تقویم میلادی پیروی می کند که در آن دوشنبه اولین روز هفته (0) و یکشنبه آخرین روز هفته (6) است.

در پایتون، زمان قرار و زمان ماژول ها همچنین عملکردهای مرتبط با تقویم سطح پایین را ارائه می دهند. علاوه بر این ماژول ها، Calendar ماژول عملکردهای ضروری مربوط به نمایش و دستکاری تقویم ها را ارائه می دهد.

به print و تقویم ها را دستکاری کنید Calendar ماژول دارای 3 کلاس مهم است: Calendar، TextCalendar، و HTMLCalendar. در این مقاله، خواهیم دید که چگونه این کلاس ها می توانند به پیاده سازی انواع توابع مرتبط با تقویم کمک کنند.

عملکردهای ماژول تقویم

برای استفاده از Calendar ماژول، ابتدا باید import ماژول با استفاده از:

import calendar

بیایید نگاهی به لیست توابع مفید در این ماژول بیندازیم.

چاپ تقویم برای یک ماه خاص

ما میتوانیم print تقویم برای یک ماه خاص، با استفاده از تابع زیر:

calendar.month(yyyy, m, w, l)

آرگومان های ارسال شده به این تابع سال (yyyy)، ماه (m، عرض ستون تاریخ (wو تعداد خطوط در هفته (l)، به ترتیب. به عنوان مثال، اجازه دهید از این تابع استفاده کنیم print تقویم مارس 2019:

print ("Calendar of March 2019 is:")
print (calendar.month(2019, 3, 2, 1))

خروجی:

Calendar of March 2019 is:
     March 2019
Mo Tu We Th Fr Sa Su
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

چاپ تقویم برای یک سال خاص

ما میتوانیم print تقویم برای یک سال کامل با استفاده از تابع زیر:

calendar.calendar(yyyy, w, l, c, m)

تابع بالا تقویم را برای کل سال، برای سالی که به عنوان آرگومان مشخص شده است، برمی گرداند. آرگومان های ارسال شده به این تابع سال (yyyy، عرض ستون تاریخ (w)، تعداد خطوط در هفته (l، تعداد فاصله بین ستون ماه (c)، تعداد ستون ها (m).

به عنوان مثال، به print از تقویم سال 2019 استفاده کنید:

print(calendar.calendar(2019, 2, 2, 6, 3))

خروجی:

January                   February                   March

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

    1  2  3  4  5  6                   1  2  3                   1  2  3

 7  8  9 10 11 12 13       4  5  6  7  8  9 10       4  5  6  7  8  9 10

14 15 16 17 18 19 20      11 12 13 14 15 16 17      11 12 13 14 15 16 17

21 22 23 24 25 26 27      18 19 20 21 22 23 24      18 19 20 21 22 23 24

28 29 30 31               25 26 27 28               25 26 27 28 29 30 31



       April                      May                       June

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

 1  2  3  4  5  6  7             1  2  3  4  5                      1  2

 8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9

15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16

22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23

29 30                     27 28 29 30 31            24 25 26 27 28 29 30



        July                     August                  September

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

 1  2  3  4  5  6  7                1  2  3  4                         1

 8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8

15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15

22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22

29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29

                                                    30



      October                   November                  December

Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su

    1  2  3  4  5  6                   1  2  3                         1

 7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8

14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15

21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22

28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29

                                                    30 31

توجه داشته باشید: بجای استفاده از “print”، ما می توانیم متناوب استفاده کنیم calendar.prmonth() و calendar.pryear() توابع به print تقویم ماه و سال این توابع print خروجی روی شما terminal.

بررسی یک سال کبیسه

ما میتوانیم استفاده کنیم isleap() عملکردی برای بررسی اینکه آیا یک سال سال کبیسه است یا خیر. سال به عنوان آرگومان به تابع ارسال می شود و تابع برمی گردد True اگر سال کبیسه باشد، در غیر این صورت باز می گردد False اگر سال کبیسه نباشد بیایید از این تابع استفاده کنیم تا ببینیم آیا سال 2016 جهشی است یا خیر:

calendar.isleap(2016)

خروجی:

True

تعداد سالهای کبیسه در محدوده

همچنین می‌توان تعداد سال‌های کبیسه را در محدوده معینی از سال‌ها بررسی کرد که به عنوان آرگومان تابع زیر مشخص شده است:

calendar.leapdays(year1, year2)

آرگومان های ارسال شده به تابع 2 مقدار معتبر سال هستند. این تابع تعداد سال های کبیسه بین آن سال ها را برمی گرداند.

مثال:

calendar.leapdays(2000, 2017)

خروجی:

5

همانطور که مشاهده شد، 5 سال کبیسه بین سال های 2000 و 2017 وجود دارد، بنابراین خروجی آن 5 است.

روز یک هفته را برگردانید

این weekday متد 3 آرگومان می گیرد، یعنی: سال، ماه و روز. این تابع روز یک هفته را برمی گرداند، که دوشنبه دارای شاخص 0 و یکشنبه دارای شاخص 6 است. به عنوان مثال:

calendar.weekday(2019, 3, 21)

خروجی:

3

همانطور که مشاهده شد، این تابع مقدار شاخص “3” را برمی گرداند که “پنجشنبه” است.

دریافت نام های مختصر در روزهای هفته

کارکرد weekheader استدلال می گیرد n، که تعداد کاراکترها را برای نام یک روز هفته مشخص می کند و سرصفحه ای حاوی نام های کوتاه شده روزهای هفته را برمی گرداند.

پیشنهاد می‌کنیم بخوانید:  روش تولید رشته های تصادفی در پایتون

مثلا:

print (calendar.weekheader(2))

خروجی:

Mo Tu We Th Fr Sa Su

به همین ترتیب،

print (calendar.weekheader(3))

خروجی:

Mon Tue Wed Thu Fri Sat Sun

دریافت تعداد روز در ماه

این monthrange تابع 2 آرگومان می گیرد: سال و ماه. این تابع یک تاپل حاوی شاخص روزی از هفته که ماه در آن شروع می شود و تعداد روزهای ماه را برمی گرداند.

مثلا:

print (calendar.monthrange(1983, 12))

خروجی:

{3,31}

از آنجایی که اولین روز دسامبر 1983 یک پنجشنبه بود، تابع مقدار شاخص پنج شنبه را به عنوان اولین عنصر تاپل برمی گرداند، و از آنجایی که 31 تعداد روزهای دسامبر است.

هفته ها را در یک ماه دریافت کنید

این monthcalendar تابع 2 آرگومان سال و ماه را می گیرد و ماتریسی را برمی گرداند که در آن هر سطر نشان دهنده یک هفته در آن ماه است.

مثلا:

print(calendar.monthcalendar(1983, 11))

خروجی:

((0,1,2,3,4,5,6), (7,8,9,10,11,12,13), (14,15,16,17,18,19,20), (21,22,23,24,25,26,27), (28,19,30,0,0,0))

همانطور که می بینید، آرایه هر هفته با دوشنبه شروع می شود و روزهای خارج از ماه با صفر نشان داده می شوند. پس آرایه اول نشان می دهد که اولین روز ماه سه شنبه است.

تغییر تنظیمات پیش فرض

تنظیمات پیش‌فرض تقویم را می‌توان مطابق با نیازهای شما تغییر داد. به عنوان مثال، اسکریپت زیر دوشنبه را به عنوان اولین روز هفته تعیین می کند.

class calendar.calendar(firstweekday=0)

به‌طور پیش‌فرض، تقویم‌ها از قرارداد اروپایی پیروی می‌کنند و دوشنبه به عنوان اولین روز هفته و یکشنبه به عنوان آخرین روز هفته است. همچنین ماه ژانویه دارای مقدار شاخص 1 و دسامبر دارای مقدار شاخص 12 است.

روش های مفید کلاس تقویم

در زیر برخی از مفیدترین متدهای کلاس تقویم آورده شده است.

روش iterweekdays().

این روش یک تکرار کننده را برمی گرداند که حاوی لیستی از شاخص ها برای روزهای یک هفته است.

مثلا:

import calendar

c = calendar.Calendar()
for i in c.iterweekdays():
    print (i, end=" ")

خروجی:

0 1 2 3 4 5 6

روش itermonthdates().

این itermonthdates() 2 آرگومان می گیرد: سال و ماه. این تابع یک تکرار کننده تمام روزهای ماه داده شده را برمی گرداند. همچنین تمامی روزهای قبل از شروع ماه و بعد از پایان ماه مورد نیاز برای دریافت هفته کامل نمایش داده می شود.

مثال:

import calendar

c = calendar.Calendar()
for i in c.itermonthdates (2019, 1):
    print (i, end=" ")

خروجی:

2018-12-31 2019-01-01 2019-01-02 2019-01-03 ..............2019-02-03

روش itermonthdays().

این روش مشابه است itermonthdates روش، اما فقط اعداد روز را برمی گرداند.

مثال:

import calendar

c = calendar.Calendar()
for i in c.itermonthdays (2019, 1):
    print (i, end=" ")

خروجی:

0 1 2 3 4 5 6........ 31 0 0 0

همانطور که می بینید، تمام روزهای قبل از شروع ماه و بعد از پایان ماه برای دریافت هفته کامل روی “0” تنظیم شده است.

روش itermonthdays2().

این روش یک تاپل متشکل از اعداد روز و روزهای هفته را نمایش می دهد.

مثال:

import calendar

c = calendar.Calendar()
for i in c.itermonthdays2 (2019, 1):
    print (i, end=" ")

خروجی:

(0,0) (1,1) (2,2) (3,3) (4,4) (5,5) (6,6) (7,0) (8,1) (9,2) ...........

روش itermonthdays3().

این روش تقریباً شبیه به itermonthdays3() روش، با این تفاوت که یک تاپلی از سال، ماه و روز ماه را برمی گرداند.

مثال:

import calendar

c = calendar.Calendar()
for i in c.itermonthdays3 (2019, 1):
    print (i, end=" ")

خروجی:

(2018,12,31) (2019,01,01) (2019,01,02).....(2019,01,31) (2019,02,01) (2019,02,02) (2019,02,03)

روش () monthdatescalendar

این روش سال و ماه را به عنوان آرگومان می گیرد و لیستی از هفته های کامل ماه را برمی گرداند. هر هفته فهرستی از 7 شی datetime.date است.

مثال:

import calendar

c = calendar.Calendar()
for i in c.monthdatescalendar (2019, 1):
    print (i, end=" ")

خروجی:

(datetime.date(2018, 12, 31), datetime.date(2019, 01, 01), datetime.date(2019, 01, 02), datetime.date(2019, 01, 03), datetime.date(2019, 01, 04), datetime.date(2019, 01, 05), datetime.date(2019, 01, 06)... datetime.date(2019, 02, 03))
.....

متد () monthdays2calendar

این تابع سال و ماه را به عنوان آرگومان می گیرد و فهرستی از هفته ها را با هر هفته به عنوان 7 تاپل از روز ماه و روز هفته برمی گرداند.

مثال:

import calendar

c = calendar.Calendar()
for i in c.monthdays2calendar (2019, 1):
    print(i, end=" ")

خروجی:

((0,0) (1,1) (2,2) (3,3) (4,4) (5,5) (6,6))
((7,0) (8,1) (9,2) (10,3) (11,4) (12,5) (13,6))
....

همانطور که می بینید، مقدار اول تاپل، روز ماه (0-31) و مقدار دوم تاپل، عدد هفته (0-6) است.

متد () monthdayscalendar

این روش سال و ماه را به عنوان آرگومان در نظر می گیرد و لیستی از هفته های کامل را برمی گرداند که هر هفته لیستی از روزهای یک ماه است.

مثال:

import calendar

c = calendar.Calendar()
for i in c.monthdayscalendar(2019, 1):
    print (i, end=" ")

خروجی نمونه:

(0, 1, 2 , 3, 4, 5, 6) (7, 8, 9, 10, 11, 12, 13)....(28, 29, 30, 31, 0, 0, 0)

روش ()yeardatescalendar

این تابع یک سال طول می کشد (yyyy) و تعداد ماه های پشت سر هم (w). به صورت پیش فرض، w پارامتر 3 است. تابع لیستی از ردیف های ماه را برمی گرداند که روزها در آن قرار دارند datetime.date اشیاء.

مثال:

import calendar

c = calendar.Calendar()
for i in c.yeardatescalendar(2019, 3):
    print (i, end=" ")

خروجی:

(((datetime.date(2018, 12, 31), datetime.date(2019, 1, 1), datetime.date(2019, 1, 2), datetime.date(2019, 1, 3), datetime.date(2019, 1, 4), datetime.date(2019, 1, 5), datetime.date(2019, 1, 6)), (datetime.date(2019, 1, 7), datetime.date(2019, 1, 8), datetime.date(2019, 1, 9), datetime.date(2019, 1, 10), datetime.date(2019, 1, 11), datetime.date(2019, 1, 12), datetime.date(2019, 1, 13)), (datetime.date(2019, 1, 14), datetime.date(2019, 1, 15), datetime.date(2019, 1, 16), datetime.date(2019, 1, 17), datetime.date(2019, 1, 18), datetime.date(2019, 1, 19), datetime.date(2019, 1, 20)), (datetime.date(2019, 1, 21), datetime.date(2019, 1, 22), datetime.date(2019, 1, 23), datetime.date(2019, 1, 24), datetime.date(2019, 1, 25), datetime.date(2019, 1, 26), datetime.date(2019, 1, 27)), (datetime.date(2019, 1, 28), datetime.date(2019, 1, 29), datetime.date(2019, 1, 30), datetime.date(2019, 1, 31), datetime.date(2019, 2, 1), datetime.date(2019, 2, 2), datetime.date(2019, 2, 3))) ... )

متد ()yeardays2calendar

این تابع یک سال طول می کشد (yyyy) و تعداد ماه هایی که در یک ردیف ماه می خواهیم (w). به طور پیش فرض، w پارامتر 3 است. تابع لیستی از هفته ها را به صورت چند روز از ماه و روز هفته برمی گرداند.

مثال:

import calendar

c = calendar.Calendar()
for i in c.yeardays2calendar(2019, 3):
    print (i, end=" ")

خروجی:

((((0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)), ((7, 0), (8, 1), (9, 2), (10, 3), (11, 4), (12, 5), (13, 6)), ((14, 0), (15, 1), (16, 2), (17, 3), (18, 4), (19, 5), (20, 6)), ((21, 0), (22, 1), (23, 2), (24, 3), (25, 4), (26, 5), (27, 6)), ((28, 0), (29, 1), (30, 2), (31, 3), (0, 4), (0, 5), (0, 6))), (((0, 0), (0, 1), (0, 2), (0, 3), (1, 4), (2, 5), (3, 6)), ((4, 0), (5, 1), (6, 2), (7, 3), (8, 4), (9, 5), (10, 6)), ((11, 0), (12, 1), (13, 2), (14, 3), (15, 4), (16, 5), (17, 6)), ((18, 0), (19, 1), (20, 2), (21, 3), (22, 4), (23, 5), (24, 6)), ((25, 0), (26, 1), (27, 2), (28, 3), (0, 4), (0, 5), (0, 6))), (((0, 0), (0, 1), (0, 2), (0, 3), (1, 4), (2, 5), (3, 6)) ... ))

روش ()yeardayscalendar

این تابع یک سال طول می کشد (yyyy) و تعداد ماه هایی که در یک ردیف ماه می خواهیم (w). به صورت پیش فرض، w پارامتر 3 است. تابع لیستی از هفته ها را به عنوان روز ماه برمی گرداند.

پیشنهاد می‌کنیم بخوانید:  ایجاد یک آرشیو فشرده از یک فهرست در پایتون

مثال:

import calendar

c = calendar.Calendar()
for i in c.yeardayscalendar(2019, 3):
    print (i, end=" ")

خروجی:

(((0, 1, 2, 3, 4, 5, 6), (7, 8, 9, 10, 11, 12, 13), (14, 15, 16, 17, 18, 19, 20), (21, 22, 23, 24, 25, 26, 27), (28, 29, 30, 31, 0, 0, 0)), ((0, 0, 0, 0, 1, 2, 3), (4, 5, 6, 7, 8, 9, 10), (11, 12, 13, 14, 15, 16, 17), (18, 19, 20, 21, 22, 23, 24), (25, 26, 27, 28, 0, 0, 0)), ((0, 0, 0, 0, 1, 2, 3), (4, 5, 6, 7, 8, 9, 10), (11, 12, 13, 14, 15, 16, 17), (18, 19, 20, 21, 22, 23, 24), (25, 26, 27, 28, 29, 30, 31))) (((1, 2, 3, 4, 5, 6, 7), (8, 9, 10, 11, 12, 13, 14), (15, 16, 17, 18, 19, 20, 21), (22, 23, 24, 25, 26, 27, 28), (29, 30, 0, 0, 0, 0, 0)) ... ))

این TextCalendar کلاس

این TextCalendar برای تولید تقویم های متنی ساده استفاده می شود. شبیه به Calendar کلاس این کلاس یک سازنده می گیرد که در آن اولین روز هفته به طور پیش فرض روی 0 تنظیم شده است. بیایید به روش های ارائه شده توسط the TextCalendar کلاس

متد ()formatmonth

این روش 4 آرگومان می گیرد: سال، ماه، ستون عرض روز (w، و تعدادی از خطوط استفاده شده توسط هر هفته (l). این متد یک رشته چند خطی را برمی گرداند.

مثال:

import calendar

c = calendar.TextCalendar()
print(c.formatmonth(2019, 1))

این تقویم ژانویه 2019 را نشان می دهد.

خروجی:

    January 2019
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

روش prmonth():

این روش تقویم یک ماه را همانطور که توسط بازگردانده شده است چاپ می کند formatmonth روش. ما می توانیم از این تابع برای جلوگیری از استفاده از ” استفاده کنیمprint”عملکرد، به print تقویم روی را terminal.

به print از تقویم ژانویه 2019 استفاده کنید:

c.prmonth(2019, 1)

روش ()formatyear:

این روش یک تقویم ستونی “m” را برای کل سال برمی گرداند. آرگومان های ارسال شده به این تابع سال هستند (yyyy، عرض ستون تاریخ (w)، تعداد خطوط در هفته (l، تعداد فاصله بین ستون ماه (c)، تعداد ستون ها (m).

این LocaleTextCalendar کلاس:

این یک زیر کلاس از TextCalendar کلاس سازنده آن یک آرگومان اضافی می گیرد، locale. نام ماه و روزهای هفته را در محل مشخص شده برمی گرداند. ما می توانیم یک شی تقویم متنی به زبان مادری خود ایجاد کنیم. ما می توانیم ماه یا روزهای هفته یا سایر داده ها را برای نمایش تقویم فرمت شده از سیستم محلی، به غیر از تقویم پیش فرض فعلی، واکشی کنیم. مثال:

import calendar

for name in calendar.month_name:
    print(name)

این اراده print نام ماه ها، طبق سیستم محلی.

خروجی:

January
February
March
April
May
June
July
August
September
October
November
December

این HTMLCalendar کلاس:

این شبیه به TextCalendar class، اما، یک تقویم HTML تولید می کند. سازنده این کلاس دارای این است firstweekday روی “0” تنظیم کنید.

در زیر برخی از روش های ارائه شده توسط HTMLCalendar کلاس

متد ()formatmonth:

این تابع تقویم یک ماه را در قالب جدول HTML نمایش می دهد. ما می توانیم تقویم آوریل 2019 را به عنوان یک جدول HTML نمایش دهیم، با استفاده از:

hc = calendar.HTMLCalendar()
print(hc.formatmonth(2019, 4))

خروجی:

<table border="0" cellpadding="0" cellspacing="0" class="month">
<tr><th colspan="7" class="month">April 2019</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>

متد ()formatyear:

این روش سال و تعداد ماه های متوالی طول می کشد (w) به عنوان آرگومان و چاپ تقویم کل سال به عنوان جدول HTML. به‌طور پیش‌فرض، عرض روی 3 تنظیم شده است. می‌توانیم تقویم 2019 را به صورت جدول HTML با استفاده از:

hc = calendar.HTMLCalendar()
print(hc.formatyear(2019, 4))

متد ()formatyearpage:

این روش یک سال طول می کشد، چند ماه متوالی (w، شیوه نامه آبشاری (CSS) و رمزگذاری، به عنوان آرگومان. این css و encoding آرگومان ها را می توان تنظیم کرد None، در صورتی که از CSS و رمزگذاری استفاده نکنیم. این تابع یک تقویم کل یک سال را به صورت HTML نمایش می دهد page داشتن عرض پیش فرض 3. ما می توانیم print تقویم سال 2019 به صورت HTML page استفاده کردن:

hc = calendar.HTMLCalendar()
print(hc.formatyearpage(2019, 3, css=None, encoding=None))
b'<?xml version="1.0" encoding="utf-8"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n<title>Calendar for 2019</title>\n</head>\n<body>\n<table border="0" cellpadding="0" cellspacing="0" class="year">\n<tr><th colspan="3" class="year">2019</th></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="month">\n<tr><th colspan="7" class="month">January</th></tr>\n<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>\n<tr><td class="noday">&nbsp;</td><td class="tue">1</td><td class="wed">2</td><td class="thu">3</td><td class="fri">4</td><td class="sat">5</td><td class="sun">6</td></tr> ... </table></body>\n</html>\n'

این HTMLCalendar خروجی شبیه به نسخه متنی ساده به نظر می رسد، اما با تگ های HTML پیچیده شده است. سلول جدول HTML حاوی یک ویژگی کلاس مربوط به روز هفته است. بنابراین، تقویم HTML را می توان از طریق CSS استایل کرد.

کلاس LocaleHTMLCalendar

این یک زیر کلاس از است HTMLCalendar کلاس سازنده آن یک آرگومان اضافی می گیرد، locale. نام ماه و روزهای هفته را در محلی مشخص شده به عنوان جدول HTML برمی گرداند. ما می توانیم یک شی تقویم متنی به زبان مادری خود ایجاد کنیم. برای مثال، می‌توانیم تقویم آوریل 2019 را به‌عنوان یک جدول HTML در محلی «en_AU» با استفاده از:

import calendar

cal = calendar.LocaleHTMLCalendar(locale='en_AU.utf8')
print(cal.formatmonth(2019, 4))

خروجی:

<table border="0" cellpadding="0" cellspacing="0" class="month">
<tr><th colspan="7" class="month">April 2019</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>

نتیجه

در این آموزش استفاده از کلاس ها و زیر کلاس های مختلف را مورد بحث قرار دادیم Calendar ماژول در پایتون برای کار با تاریخ ها برای مدیریت مقادیر مبتنی بر هفته / ماه / سال. همچنین در مورد استفاده از توابع در ماژول تقویم پایتون بحث کردیم. در کنار این موضوع را نیز اجرا کردیم TextCalendar و HTMLCalendar کلاس هایی برای تولید خروجی از پیش فرمت شده امیدوارم آموزش آموزنده بوده باشه!

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-23 14:47:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید