اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

نعم، توجد مكتبات في React Native تسمح باستخدام التاريخ الهجري. من أشهرها:

- react-native-hijri-date-picker: تتيح اختيار تواريخ هجرية بواسطة DatePicker.

- hijri-date: تسمح بالتعامل مع التواريخ الهجرية بسهولة، مثل إضافة أيام/شهور، تحويل إلى ميلادي، إلخ.

يمكن استخدام المكتبة hijri-date على النحو التالي:

import HijriDate from 'hijri-date';

// أخذ تاريخ هجري حالي 
const hijri = HijriDate.now();

// طباعة التاريخ في شكل كامل (مثلاً: ١٤٤١/٣/٢٥ هـ)
console.log(hijri.format('iYYYY/iMM/iDD'));

// إضافة شهر واحد
const nextMonth = hijri.addMonths(1); 

// تحويل إلى ميلادي 
const miladi = hijri.toGregorian(); 

هذه المكتبة تسهل التعامل مع التواريخ الهجرية في تطبيقات React Native. رجاء استخدم وثائقها لمعرفة كافة الإمكانيات التي تقدمها.

وهناك مكتبات أخرى تعمل مع التواريخ الهجرية في React Native:

  • react-native-hijri: توفر عدة أدوات للتعامل مع التاريخ الهجري مثل تحويل التواريخ بين الميلادي والهجري، إضافة أشهر/أيام، الحصول على اليوم/الشهر الحالي، إلخ.
  • hijri-converter: بسيطة وتسمح فقط بتحويل التواريخ بين الميلادي والهجري.
  • react-native-calendars: مكتبة توفر تقويماً شاملاً في React Native، وتدعم عرض التقويم الميلادي والهجري.
  • react-hijri: أخرى بسيطة توفر تحويل التواريخ وعرض تقويم هجري.

يمكن استخدام هذه المكتبات بنفس طريقة hijri-date تقريباً. من الأفضل اختبار عدة مكتبات واختيار الأنسب لاحتياجاتك.

  • 0
نشر

نعم، يمكنك استخدام مكتبة مثل "moment-hijri" في تطبيق React Native للحصول على التاريخ الهجري. تعتبر هذه المكتبة منتشرة ومعروفة في مجتمع React Native.

لاستخدام التاريخ الهجري في JavaScript، يمكنك استخدام مكتبة مثل "moment-hijri" أو "ummalqura-hijri-date" للتحويل بين التواريخ الميلادية والهجرية. إليك مثالًا بسيطًا لاستخدام "moment-hijri":

import moment from 'moment-hijri';

// الحصول على التاريخ الهجري الحالي
const hijriDate = moment().format('iYYYY/iM/iD');

console.log(hijriDate); // ستعرض التاريخ الهجري الحالي بتنسيق iYYYY/iM/iD

هذا مثال بسيط يستخدم "moment-hijri" للحصول على التاريخ الهجري الحالي وطباعته. يمكنك استكشاف المزيد من وظائف المكتبة للعمل مع التواريخ الهجرية بشكل أوسع.

لاحظ أنه في بعض الأحيان قد تحتاج إلى تثبيت المكتبة واستيرادها قبل استخدامها، لذا تأكد من اتباع التعليمات اللازمة الموجودة في وثائق المكتبة التي تقرر استخدامها.

  • 0
نشر

للاستفادة من التاريخ الهجري في لغة JavaScript، تستطيع استخدام المكتبة المعروفة باسم "Hijri.js"، وهي مكتبة JavaScript مفتوحة المصدر تتيح لك التعامل مع التواريخ الهجرية، يمكنك تنزيل المكتبة من مستودع GitHub الخاص بها.

ولتثبيت المكتبة باستخدام مدير حزم npm، استخدم الأمر التالي:

npm install hijri.js

بعد تثبيت المكتبة، قم باستيرادها في مشروعك بالشكل التالي:

const HijriDate = require('hijri.js');

// مثال على كيفية إنشاء تاريخ هجري جديد
const hijriDate = new HijriDate();
console.log(hijriDate.toString()); // يقوم بطباعة التاريخ الهجري الحالي

// يمكنك أيضًا تعيين تاريخ هجري محدد
const specificDate = new HijriDate(1443, 9, 1);
console.log(specificDate.toString()); // يقوم بطباعة التاريخ الهجري المحدد

بالنسبة لـ React Native، لا يوجد مكتبة محددة للتعامل مع التواريخ الهجرية في React Native بشكل مدمج، لذلك عليك بالإعتماد على مكتبة جافاسكريبت مثل Hijri.js المذكورة أعلاه في مشروع React Native بنفس الطريقة الموضحة في الأمثلة.

وهناك أيضًا مكتبة moment-hijri لعرض التاريخ الهجري وهي إضافة لمكتبة  moment.js الخاصة بالتواريخ.

وهنا شرح استخدامها، وهي بسيطة:

استخدام التاريخ الهجري في جافا سكريبت بدون مكتبة

سأشرح لك كيف يمكن القيام بذلك، لكن من الأسهل استخدام مكتبة جاهزة، وسنعتمد على الدوال والعمليات المتاحة في JavaScript للتعامل مع التواريخ وبعض الحسابات الرياضية يدويًا.

// تحويل التاريخ الميلادي إلى هجري
function convertToHijri(gregorianDate) {
  const dateObj = new Date(gregorianDate);
  const year = dateObj.getFullYear();
  const month = dateObj.getMonth() + 1;
  const day = dateObj.getDate();

  // الحساب المبسط للتاريخ الهجري
  const jd = Math.floor((11 * year + 3) / 30) + 354 * year + 30 * month - Math.floor((month - 1) / 2) + day + 1948440 - 385;

  const yearHijri = Math.floor((11 * jd + 3) / 30);
  const monthHijri = Math.floor(12 * (jd - Math.floor((30 * yearHijri + 3) / 11)) + 6) / 354;
  const dayHijri = jd - Math.floor((30 * yearHijri + 3 * monthHijri - 1) / 11);

  return {
    year: yearHijri,
    month: monthHijri,
    day: dayHijri
  };
}

// مثال لاستخدام الدالة
const gregorianDate = '2023-05-22';
const hijriDate = convertToHijri(gregorianDate);
console.log(hijriDate);

تحتوي الدالة convertToHijri في المثال أعلاه على خوارزمية بسيطة لتحويل التاريخ الميلادي إلى التاريخ الهجري. تستخدم الدالة Date المدمجة في JavaScript لإنشاء كائن تاريخ ميلادي من التاريخ الذي تريد تحويله. ثم يتم استخدام المعادلات المحسوبة يدويًا لتحويل التاريخ الميلادي إلى التاريخ الهجري.

 وإرجاع النتيجة في شكل كائن يحتوي على السنة الهجرية والشهر واليوم.

ويرجى ملاحظة أن هذا مثال بسيط ولا يعتبر دقيقًا بنسبة 100٪ بالنسبة للحسابات المعقدة للتاريخ الهجري، حيث يوجد عدد من القواعد والتعقيدات في حساب التاريخ الهجري التقليدي التي لم تتم مراعاتها في هذا المثال. لذلك من الأفضل استخدام مكتبة خارجية إذا كنت تحتاج إلى دقة ومرونة أكثر في التعامل مع التاريخ الهجري.

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...