ماژول تقویم در پایتون — راهنمای کامل و کاربردی + نمونه کد
چنانچه قصد دارید یک پلنر شخصی برای خود ایجاد کنید یا تمرین کدنویسی در طی روز داشته باشید، ماژول تقویم در پایتون یکی از بهترین گزینهها است. زبان Python، «ماژولی توکار» (Built-in Module) برای تقویم ارائه میکند که با استفاده از آن میتوان در روزها یا ماههای خاصی از سال کدهای پروژه را ویرایش کرد، یا به عنوان مثال میتوان از ماژول تقویم پایتون برای ایجاد رشتهای از تمام ماههای تقویم یک سال استفاده کرد. این ماژول در مقایسه با سایر ماژولهای مربوط به تاریخ در زبان پایتون جامعتر بوده و امکانات بیشتری را در اختیار کاربر قرار میدهد. در ادامه به توضیح کلاس تقویم در پایتون، نحوه استفاده از آن در پایتون و ایجاد یک تقویم پرداخته شده است. این ماژول را بدون استفاده از کتابخانههای گرافیکی پایتون پیادهسازی میکنیم.
ماژول تقویم در پایتون چیست؟
زبان برنامه نویسی پایتون دارای ماژولی توکار به نام Calendar است. این ماژول شامل کلاسها و توابع مفید و کاربردی میشود که با استفاده از آنها میتوان کارهای مختلفی درباره تقویم در پایتون انجام داد. این ماژول در مقایسه با ماژولهای دیگر پایتون، نظیر ماژول Time و ماژول Datetime توابعی پیشرفتهتر و اساسیتر برای نمایش و ویرایش تقویم ارائه میدهد. ماژول Time و ماژول Datetime تنها توابعی سطح پایین برای عملیات مربوط به تقویم در اختیار برنامه نویس قرار میدهند.
یکی از قابلیتهای مهم ماژول تقویم در پایتون این است که با استفاده از آن میتوان براساس تاریخ، ماه و سال، محاسباتی را برای پروژههای مختلف انجام داد. همچنین، ماژول Calendar این قابلیت را فراهم میکند تا بتوان تقویم را با حالتهای مختلف تنظیم کرد و روز شروع هر ماه را تغییر داد.
علاوه بر این، با استفاده از تقویم در پایتون میتوان تقویمی را در قالب فایلهای مختلف نظیر HTML به نمایش درآورد یا فهرستی از روزهای خاص را در یک سال مشخص، استخراج کرد. تقویم پایتون به طور پیشفرض تقویم میلادی را نشان میدهد که اولین روز هفته در این تقویم، روز دوشنبه و آخرین روز هفته، روز یکشنبه است. با این حال، با استفاده از کلاسهای مختلف ماژول تقویم پایتون میتوان حالتهای پیشفرض آن را مطابق نیاز خود تغییر داد. در بخش بعدی این مقاله، به توضیح برخی از امکانات ماژول Calendar پرداخته شده است.
کار با ماژول تقویم در پایتون
استفاده از ماژول تقویم پایتون آسان است زیرا این ماژول، ماژولی توکار محسوب میشود و نیازی نیست آن را به صورت جداگانه نصب کرد. برای شروع کار، پس از ایجاد یک فایل پایتون، میتوان ماژول Calendar را به صورت زیر فراخوانی کرد:
1import calendar
مشاهده روزهای هفته با ماژول تقویم در پایتون
چنانچه فرض کنیم روزهای هفته از روز دوشنبه شروع میشود، با استفاده از تابعweakheader()میتوان روزهای هفته را به صورت اختصاری در خروجی مشاهده کرد. تابعweakheader() پارامتری در ورودی میپذیرد که تعداد حروف به کار رفته برای اختصاری کردن اسامی روزهای هفته را مشخص میکند:
1import calendar
2print(calendar.weekheader(2)) # set the abbreviation length to 2
در مثال بالا، مقدار آرگومان اختصارساز برابر با 2 است که در خروجی این تابع، میتوان اسامی هفته را بهصورت اختصاری با دو حرف مشاهده کرد:
Mo Tu We Th Fr Sa Su
ماژول تقویم پایتون بهصورت پیشفرض دوشنبه را به عنوان اولین روز هفته در نظر میگیرد. میتوان با استفاده از تابعsetfirstweekday() مقدار پیشفرض ماژول را به روزهای دیگر تغییر داد.
معرفی فیلم های آموزش پایتون
همه افرادی که مشغول یادگیری برنامه نویسی پایتون هستند از مجموعه فیلمهای آموزشی پایتون در سایت فرادرس میتوانند استفاده کنند. این پلتفرم شامل دورههای آموزشی مقدماتی تا دورههای پیشرفته زبان پایتون است. علاقمندان به یادگیری این زبان میتوانند از دورههای جامع پایتون در راستای تقویت مهارت برنامه نویسی خود استفاده کنند و از آموزشهای پروژه محور فرادرس بهره گیرند. در تصویر فوق تنها برخی از دورههای آموزشی مجموعه آموزش پایتون فرادرس ملاحظه میشوند.
- برای دسترسی به همه آموزش های پایتون فرادرس + اینجا کلیک کنید.
سال کبیسه در ماژول تقویم پایتون
با استفاده از تابعisleap() میتوان بررسی کرد که آیا سال مورد نظر ما کبیسه است یاخیر. این تابع پارامتری را به عنوان ورودی دریافت کرده که سال را مشخص میکند و در خروجی مقداری بولی (True/False) برمیگرداند. در مثال زیر آرگومان ورودی، سال 2023 است:
1import calendar
2print(calendar.isleap(2023))
خروجی تابع بالا به صورت زیر است که نشان میدهد سال 2023 سال کبیسه نیست:
False
شمارش روزهای کبیسه بین سالهای تعیینشده
از تابعleapdays() میتوان بهمنظور شمارش تعداد روزهای کبیسه بین دو بازه زمانی استفاده کرد. روز کبیسه، روزی است که تعداد روزهای سال را به 366 روز تبدیل میکند.
1import calendar
2checkleap = calendar.leapdays(2022, 2030)
3print("There are {} leap days between 2022 and 2030".format(checkleap))
در مثال بالا، تعداد روزهای کبیسه بین سالهای 2021 تا 2030، 2 روز است:
There are 2 leap days between 2022 and 2030
بررسی اولین روز هفته در ماه با استفاده از ماژول تقویم
با استفاده از ماژول تقویم میتوان به لیستی از روزهای هفته به همراه اندیس آنها دسترسی داشت. بهصورت پیشفرض، روز دوشنبه اولین روز هفته در نظر گرفته شده که اندیس آن برابر با عدد صفر است. به همین ترتیب، اندیس روز سهشنبه، برابر با یک و اندیس روز یکشنبه برابر با شش است. به منظور مشاهده اندیسهای روزهای هفته از تابعfirstweekday() استفاده میشود:
1import calendar
2print(calendar.firstweekday())
خروجی مثال بالا به صورت زیر است:
0
با استفاده از تابعweekday() میتوان تاریخ را به روز هفته تبدیل کرد. تابعweekday() سال، ماه و عدد روز را به عنوان پارامتر ورودی دریافت میکند و در خروجی اندیس روز هفته را برمیگرداند:
1import calendar
2print(calendar.weekday(2021, 9, 1)) # This accepts a year, a month, and a date argument
خروجی تابع بالا، عدد 2 است که این یعنی اولین روز از ماه سپتامبر سال 2021، روز چهارشنبه است:
2