x تبلیغات
معرفی نرم افزار های سازمانی

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

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

هر روز در تقویم شمسی معادل یک روز در تقویم میلادی است. مثلا اول فروردین هر سال معمولا معادل 21 مارس می‌باشد. اما در بعضی از سال‌ها مانند سال 1399 یک روز اختلاف وجود دارد و اول فروردین 20 مارس است. این یک روز به خاطر کبیسه بودن سال 1399 در سال 1400 جبران می‌شود.

این توضیح برای کاربرانی است که این مورد را به عنوان اشکال برنامه اعلام کرده بودند.

توضیحاتی به زبان ساده در مورد این دو تقویم ارائه می‌گردد.

سال شمسی

یک سال شمسی بنا بر تعریف، مدت زمان بين دو عبور متوالی مركز خورشيد از نقطه اعتدال بهاری است. برخلاف باور عمومی مردم، این مدت زمان ثابت نیست. و هر ساله اندکی تغییر می‌کند. اما اگر متوسط سال شمسی را در سالیان گذشته حساب کنیم، بصورت تقریبی 365 شبانه‌روز و 5 ساعت و 48 دقيقه و 45 ثانيه طول یک روز شمسی می‌باشد.

تاریخ تقویم در ایران

ایرانیان قبل از اسلام از تقویم ۳۶۰ روزه استفاده می‌کردند. که 12 ماه داشت. برای جبران کوتاهی سال، هر ۶ سال یکبار ماه سیزدهمی هم برای به این تقویم اضافه می‌شد. پس از ورود اسلام تقویم قبلی در بسیاری از مناطق به فراموشی سپرده شد. و تقویم و گاهشماری عمدتا بر اساس سال هجری قمری انجام می‌شد.

حدود ۴۰۰ سال بعد از ورود اسلام به ایران، جلال الدین ملکشاه سلجوقی به قدرت رسید. ملکشاه از وزیر خود خواجه نظام الملک طوسی خواست تا تقویم دقیقی را پایه گذاری نماید. خواجه نظام الملک دانشمند، فیلسوف و منجم زمان خود یعنی حکیم عمر خیام را مامور این کار کرد. در تاریخ ۳ رمضان ۴۷۱ هجری قمری، تقویم جلالی توسط خیام در ایران، تنظیم شد. تقویم هجری شمسی کنونی بر اساس همین تقویم جلالی می‌باشد.

 

منبع:
https://armangeomatic.com/%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE

تبدیل تاریخ شمسی به میلادی php

 

تبدیل تاریخ شمسی به میلادی به صورت دستی کار وقت گیر و گاهاً مشکلی است زیرا سال کبیسه‌ی خورشیدی با سال کبیسه‌ی میلادی برابر نیست، به همین منظور می‌توان از ابزارهای مختلفی استفاده کرد که یکی از آن‌ها نوشتن یک برنامه به زبان PHP است. ابزارهای مختلفی برای تبدیل تاریخ شمسی به میلادی php وجود دارد که استفاده کردن از هرکدام ابزارها روش به خصوص خود را دارد. اما ما در این پست از یک تابع به نام jalali_to_gregorian استفاده می‌کنیم که این تابع در داخل فایل jdf وجود دارد (توجه کنید که این تابع ورژن‌های مختلفی دارد و ما تنها از ورژن سبک نسخه 2.80 استفاده کرده‌ایم). برخی این فایل را کتابخانه می‌نامند درحالی که تنها یک تابع (function) می‌باشد و یک تابع فقط از چند دستور مختلف تشکیل شده است. این فایل را می‌توانید با جستجو کردن jalali to gregorian jdf در گوگل دانلود نمایید. پس از دانلود کردن فایل می‌بایست کاربرد هر کدام از پارامترهای تابع را بدانید. در ادامه مطلب تبدیل تاریخ شمسی به میلادی php به توضیح این پارامترها می‌پردازیم.



function jalali_to_gregorian($jy, $jm, $jd, $mod="") {
$jy += 1595;
$days = -355668 + (365 * $jy) + (((int)($jy / 33)) * 8) + ((int)((($jy % 33) + 3) / 4)) + $jd + (($jm < 7)? ($jm - 1) * 31 : (($jm - 7) * 30) + 186);
$gy = 400 * ((int)($days / 146097));
$days %= 146097;
if ($days > 36524) {
$gy += 100 * ((int)(--$days / 36524));
$days %= 36524;
if ($days >= 365) $days++;
}
$gy += 4 * ((int)($days / 1461));
$days %= 1461;
if ($days > 365) {
$gy += (int)(($days - 1) / 365);
$days = ($days - 1) % 365;
}
$gd = $days + 1;
$sal_a = array(0, 31, (($gy % 4 == 0 and $gy % 100 != 0) or ($gy % 400 == 0))?29:28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
for ($gm = 0; $gm < 13 and $gd > $sal_a[$gm]; $gm++) $gd -= $sal_a[$gm];
return ($mod == "")? array($gy, $gm, $gd) : $gy.$mod.$gm.$mod.$gd;
}

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

  • jy$: اشاره به سال شمسی دارد. این تاریخ باید به صورت کامل وارد شود.
  • jm$: اشاره به ماه شمسی دارد که می‌تواند رقمی بین 1 تا 12 باشد.
  • jd$: اشاره به روز شمسی دارد که می‌تواند رقمی بین 1 تا 31 باشد.

مورد چهارم که با نام mod$ نوشته شده است اشاره به نحوه نمایش تاریخ دارد. این پارامتر تعیین می‌کند تا تاریخ با استفاده از چه کاراکتری از هم جدا شود. می‌توان از کارکتر / یا - برای جدا کردن ارقام سال، ماه و روز استفاده کرد. حتی می‌توانید یک فاصله بگذارید اما باید دقت کنید که این پارامتر خالی نباشد. در ادامه یک مثال برای این پارامتر خواهیم زد.

 

 

منبع:

https://www.finds.ir/content/Education/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B4%D9%85%D8%B3%DB%8C-%D8%A8%D9%87-%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C-php/1521/

صفحه قبل 1 صفحه بعد