نمونه سورس کد تقویم شمسی
در دنیای برنامهنویسی، ایجاد یک تقویم شمسی به عنوان یک پروژه جالب و مفید به شمار میآید. این پروژه میتواند به زبانهای مختلفی نوشته شود، اما در اینجا به بررسی یک نمونه سورس کد تقویم شمسی به زبان پایتون میپردازیم.
مقدمه
تقویم شمسی، همچنین به عنوان تقویم هجری شمسی یا تقویم ایرانی شناخته میشود. این تقویم شامل ۱۲ ماه است و هر ماه بین ۲۹ تا ۳۱ روز دارد. یکی از چالشهای اصلی در پیادهسازی این تقویم، تبدیل تاریخهای میلادی به شمسی و بالعکس است.
کد منبع
```python
from datetime import datetime, timedelta
def gregorian_to_jalali(g_year, g_month, g_day):
# محاسبه تاریخ شمسی
g_days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
j_year = g_year - 621
if g_month > 2:
j_day = g_day + sum(g_days_in_month[:g_month - 1]) - 79
if j_day > 186:
j_day -= 186
j_month = 7 + (j_day // 31)
j_day = j_day % 31 + 1
else:
j_month = (j_day // 31) + 1
j_day = j_day % 31 + 1
else:
j_day = g_day + sum(g_days_in_month[:g_month - 1]) - 10
j_month = 12 if j_day > 29 else 1
j_day -= 29 if j_month == 12 else 0
return j_year, j_month, j_day
# مثال استفاده
g_year, g_month, g_day = 2023, 10, 1
jalali_date = gregorian_to_jalali(g_year, g_month, g_day)
print(f"تاریخ شمسی: {jalali_date[0]}/{jalali_date[1]}/{jalali_date[2]}")
```
توضیحات کد
در این کد، تابع `gregorian_to_jalali` برای تبدیل تاریخ میلادی به شمسی طراحی شده است. در ابتدا، سال، ماه و روز میلادی به عنوان ورودی گرفته میشود. سپس بر اساس قوانین تبدیل، سال، ماه و روز معادل شمسی محاسبه میشود.
نکات کلیدی
- تاریخ هجری شمسی: هر سال شمسی شامل ۱۲ ماه است که در ۳ ماه اول ۳۱ روز و در ۴ ماه بعدی ۳۰ روز دارد.
- محاسبات دقیق: توجه به روزهای کبیسه میلادی و شمسی بسیار مهم است.
- توسعه و بهبود: میتوان این کد را با افزودن امکاناتی چون تبدیل تاریخ شمسی به میلادی یا نمایش تقویم کامل گسترش داد.
نتیجهگیری
ایجاد یک تقویم شمسی نه تنها به تقویت مهارتهای برنامهنویسی کمک میکند، بلکه اطلاعات فرهنگی و تاریخی نیز به همراه دارد. این پروژه میتواند به عنوان پایهای برای پروژههای بزرگتر در نظر گرفته شود.