از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
مقدمه ای بر ماژول تقویم پایتون
سرفصلهای مطلب
معرفی
پایتون یک ماژول داخلی به نام دارد 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"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </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"> </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"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td></tr>
</table>
نتیجه
در این آموزش استفاده از کلاس ها و زیر کلاس های مختلف را مورد بحث قرار دادیم Calendar
ماژول در پایتون برای کار با تاریخ ها برای مدیریت مقادیر مبتنی بر هفته / ماه / سال. همچنین در مورد استفاده از توابع در ماژول تقویم پایتون بحث کردیم. در کنار این موضوع را نیز اجرا کردیم TextCalendar
و HTMLCalendar
کلاس هایی برای تولید خروجی از پیش فرمت شده امیدوارم آموزش آموزنده بوده باشه!
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-23 14:47:04