تاریخ و زمان

تبدیل تاریخ

روش کار تبدیل تاریخ دیتاکار؛ شامل تقویم‌های پشتیبانی‌شده، الگوریتم تبدیل، سال کبیسه، هجری قمری محاسباتی و محدودیت‌ها.

در این صفحه

خلاصه

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

نکته مهم درباره هجری قمری

هجری قمری در این ابزار محاسباتی (Tabular/Civil) است. به همین دلیل ممکن است با تاریخ رسمی مبتنی بر رؤیت هلال یک روز، و در موارد خاص بیشتر، تفاوت داشته باشد.

تقویم‌های پشتیبانی‌شده

هجری شمسیتقویم رایج افغانستان؛ ماه‌های حمل تا حوت
Solar Hijri
میلادیتقویم Gregorian
Gregorian
هجری قمرینسخه محاسباتی، نه رؤیت هلال
Tabular

روش تبدیل

برای جلوگیری از تبدیل مستقیم هر تقویم به هر تقویم دیگر، اپ از شماره روز ژولینی (Julian Day Number / JDN) به‌عنوان واسطه استفاده می‌کند.

Conversion flowSource calendar → JDN → Target calendar

مثلاً برای تبدیل هجری شمسی به میلادی، تاریخ شمسی ابتدا به JDN تبدیل و سپس همان JDN به تاریخ میلادی برگردانده می‌شود. نتیجه تقویم سوم نیز از همین JDN محاسبه می‌گردد.

اعتبارسنجی و سال کبیسه

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

  • در میلادی، قاعده استاندارد سال کبیسه Gregorian استفاده می‌شود.
  • در هجری شمسی، کبیسه براساس چرخه حسابی مورد استفاده الگوریتم محاسبه می‌شود.
  • در هجری قمری محاسباتی، ماه‌ها معمولاً ۲۹ و ۳۰ روزه‌اند و کبیسه براساس چرخه ۳۰ ساله تعیین می‌شود.
  • تقویم مبدا و مقصد نمی‌توانند یکسان باشند.

هجری قمری چگونه محاسبه می‌شود؟

نسخه فعلی از Tabular Islamic Civil Calendar استفاده می‌کند. این یک تقویم حسابی است که طول ماه‌ها و سال‌های کبیسه را با قاعده ثابت تعیین می‌کند؛ بنابراین برای تبدیل تخنیکی و عمومی مناسب است، اما مرجع شرعی یا رسمی رؤیت هلال نیست.

برای تاریخ‌های رسمی قمری

اگر تاریخ برای سند رسمی، مناسبت دینی یا موضوعی وابسته به رؤیت هلال استفاده می‌شود، نتیجه را با مرجع رسمی مربوطه تأیید کنید.

روز هفته و فاصله از امروز

علاوه بر تبدیل، اپ روز هفته را از JDN محاسبه می‌کند. «فاصله از امروز» براساس تاریخ محلی دستگاه کاربر و با اجزای سال، ماه و روز میلادی محاسبه می‌شود.

در نتیجه، عبارت فاصله زمانی یک تفاوت تقویمی است، نه صرفاً تقسیم تعداد روزها بر ۳۰ یا ۳۶۵.

مثال

۱۳ سنبله ۱۴۰۵هجری شمسی
میلادی
۴ سپتمبر ۲۰۲۶
هجری قمری محاسباتی
۲۱ ربیع‌الاول ۱۴۴۸

محدودیت‌ها

  • ورودی سال در رابط فعلی بین ۱ تا ۹۹۹۹ پذیرفته می‌شود.
  • هجری قمری نتیجه محاسباتی است و تضمین تطابق با رؤیت هلال ندارد.
  • «امروز» از تاریخ محلی دستگاه کاربر گرفته می‌شود؛ تنظیم نادرست تاریخ دستگاه می‌تواند فاصله از امروز را نادرست کند.
  • این ابزار برای تبدیل عمومی تاریخ ساخته شده و جایگزین مرجع رسمی حقوقی یا دینی نیست.

منطق و منبع تخنیکی

تبدیل میلادی و هجری شمسی در نسخه فعلی با الگوریتم‌های حسابی مبتنی بر JDN انجام می‌شود و هجری قمری از مدل Tabular/Civil استفاده می‌کند. تمام محاسبه در JavaScript داخل مرورگر انجام می‌شود.

آخرین بازبینی مستندات: ۱۳ سنبله ۱۴۰۵ / ۴ سپتمبر ۲۰۲۶