FarsiUI
123456789101112

-- : -- : -- --

ساعت و تقویم ایران

چهارشنبه - ۱ فروردین ۱۳۸۶

تاریخ خورشیدی

۱۳۸۶/۰۱/۰۱

چهارشنبه - ۱ فروردین ۱۳۸۶

تاریخ میلادی

2007-03-21

Wednesday - March 21, 2007

تاریخ قمری

۱۴۲۸/۰۳/۰۲

الاربعاء - ۰۲ ربیع‌الاول ۱۴۲۸

برج فلکی

حمل

March - April 2007

ربیع‌الاول - ربیع‌الثانی ۱۴۲۸

ش
ی
د
س
چ
پ
ج

مناسبت‌های ماه فروردین

  • ۱ فروردینآغاز نوروز
  • ۲ فروردینعید نوروز
  • ۳ فروردینعید نوروز
  • ۴ فروردینعید نوروز
  • ۱۲ فروردینروز جمهوری اسلامی ایران
  • ۱۳ فروردینروز طبیعت (سیزده‌به‌در)
  • ۱۷ فروردینمیلاد رسول اکرم و امام جعفر صادق

راهنمای استفاده از داده‌های تقویم FarsiUI

با داده‌های تقویم FarsiUI می‌توانید بررسی کنید که یک روز تعطیل رسمی است یا چه مناسبت‌هایی دارد. نیازی به نصب پکیج یا راه‌اندازی سرور ندارید؛ کافی است فایل JSON موردنیاز را از طریق اینترنت دریافت کنید.

برای نصب همان UI تقویم (جدول ماه، مناسبت‌ها، ساعت و کارت تاریخ‌ها) در پروژهٔ خود:

terminal
npx farsiui@latest add iran-calendar

بعد از نصب، صفحه در /iran-calendar در دسترس است و فایل‌ها در components/iran-calendar/ قرار می‌گیرند.

در ادامه، فقط مصرف مستقیم فایل‌های JSON توضیح داده شده است. در این راهنما از سال ۱۴۰۵ به‌عنوان مثال استفاده می‌کنیم.

سال موردنظر را مشخص کنید

سال تقویم جلالی را انتخاب کنید؛ مثلاً 1405. این عدد در آدرس فایل‌های همان سال استفاده می‌شود.

فایل موردنیاز را انتخاب کنید

این سه فایل در دسترس است:

  • holidays.json — تعطیلات رسمی همان سال (ملی و مذهبی)
  • events.json — مناسبت‌های غیرتعطیل همان سال
  • meta.json — فهرست همهٔ سال‌های منتشرشده (برای کل مجموعه، نه فقط یک سال)

می‌توانید لینک هر فایل را در مرورگر باز کنید یا مستقیماً در کد خود از آن استفاده کنید.

فایل JSON را دریافت کنید

برای دریافت اطلاعات، از fetch استفاده کنید:

fetch
const response = await fetch(
  "https://raw.githubusercontent.com/MiladJoodi/FarsiUI/main/calendar/years/1405/holidays.json"
);

const data = await response.json();

console.log(data);

در این مثال، اطلاعات تعطیلات رسمی سال ۱۴۰۵ دریافت می‌شود.

ساختار داده‌ها را بشناسید

اطلاعات هر فایل در قالب JSON ارائه می‌شود. فهرست روزها داخل ویژگی items قرار دارد.

نمونه‌ای از یک آیتم:

item
{
  "id": "nature-day-1405",
  "date": "1405-01-13",
  "title": {
    "fa": "روز طبیعت",
    "en": "Nature Day"
  },
  "isHoliday": true,
  "categories": ["national"]
}

معنی فیلدها:

  • id: شناسه یکتای مناسبت
  • date: تاریخ شمسی به فرمت YYYY-MM-DD
  • title.fa: عنوان فارسی
  • title.en: عنوان انگلیسی
  • isHoliday: مشخص می‌کند این مناسبت تعطیل رسمی است یا نه
  • categories: دسته‌بندی مناسبت

ممکن است در یک روز چند مناسبت وجود داشته باشد؛ بنابراین برای پیدا کردن مناسبت‌های یک روز، تمام آیتم‌های مطابق با تاریخ را بررسی کنید.

تعطیلی یا مناسبت یک روز را پیدا کنید

اگر تاریخ شمسی روز موردنظر را دارید، آن را با فیلد date مقایسه کنید:

filter
const response = await fetch(
  "https://raw.githubusercontent.com/MiladJoodi/FarsiUI/main/calendar/years/1405/holidays.json"
);

const data = await response.json();

// تاریخ شمسی موردنظر
const day = "1405-01-13";

const matches = data.items.filter(
  (item) => item.date === day
);

if (matches.length > 0) {
  console.log(matches.map((item) => item.title.fa));
} else {
  console.log("تعطیل رسمی در این فهرست ثبت نشده است.");
}

اگر برای آن روز چند مناسبت ثبت شده باشد، همهٔ آن‌ها برگردانده می‌شوند.

اگر تاریخ میلادی دارید، ابتدا آن را تبدیل کنید

فایل‌های تقویم FarsiUI از تاریخ شمسی استفاده می‌کنند و وظیفهٔ تبدیل تاریخ را بر عهده ندارند.

اگر تاریخ شما میلادی است، ابتدا آن را با یک کتابخانهٔ سازگار با تقویم جلالی، مانند @internationalized/date، به تاریخ شمسی تبدیل کنید. سپس تاریخ را با فرمت YYYY-MM-DD بسازید و در فهرست مناسبت‌ها جست‌وجو کنید.

چند نکته مهم

  • برای دریافت فایل‌ها به اینترنت نیاز دارید، اما به سرور اختصاصی یا API خودتان احتیاجی نیست.
  • فایل‌های هر سال را فقط پس از انتشار و بررسی صحت داده‌ها استفاده کنید.
  • این داده‌ها برای تشخیص مناسبت‌ها و تعطیلات هستند؛ تبدیل تاریخ و محاسبهٔ روز هفته باید جداگانه انجام شود.

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