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