الانتقال إلى المحتوى

فكرة جديدة لحل مشكلة التاريخ الهجري


Amateur

Recommended Posts

السلام عليكم ورحمة الله وبركاته..

راح اضع لكم اليوم function لتحويل التاريخ الميلادي للتاريخ الهجري.. وفكرة هذه function أتت بعد ما استخدمت الـ function و الـ procedure الموجوده في المنتدى ووجدت بعض اختلافات التواريخ فيها ومشكلة دخول هلال رمضان والحج فكما الجميع يعلم ان التاريخ الهجري خصوصا في بعض اشهره يعتمد على روية الهلال وقد يتغير التاريخ في التقويم عن التاريخ الفعلي بعد رؤية الهلال.. من هنا جلست مع نفسي وحاولت أن أجد حلا لهذه المشكلة..

مبدأ عمل الـ function
بشكل عام تعتمد على جدول يقوم من خلاله المستخدم بتحديد بداية التاريخ الميلادي بمايقابله بالتاريخ الهجري ويحدد عدد أيام التاريخ الهجري ومن خلال هذا الجدول تتم المقارنات..

مثال:

G_MONTH                               1
G_YEAR                             2007
G_DATE                   01-01-2007
H_DAY                                    11
H_MONT                                12
H_YEAR                             1427
H_DATE                  11-12-1427
N_DAY                                   29




كماهو موضح بالأعلى تم إدخال الشهر الميلادي والسنة وبداية الشهر الميلادي ومايقابل بداية التاريخ الميلادي بالهجري مفصلا وعدد أيام التاريخ الهجري..

والسبب وضع التواريخ بهذا الشكل انه في حال ارسال تاريخ ميلادي للـ function وليكن مثلا 2007-01-01 سيتم ارجاع التاريخ الهجري المقابل له فورا من دون عمل أي عملية للتاريخ عدا ذلك ستجدون مبدأ العمل داخل الكود.. ولمن أراد شرح للكود أنا مستعد..

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

أتمنى من الجميع الاستفاده منها.. والدعاء لي بالتوفيق في الدنيا والآخرة

ومن يصعب عليه تطبيقها أنا سأكون متواجد للاجابة على أي استفسار.. من اليوم 2007-12-26 حتى 2007-12-28 وسأنقطع فترة الاجازة ثم سأعود من جديد بتاريخ 2008-01-06

(ستجدون بالأسفل تتابعا الكود الخاص بالـ function يليه السكربت لانشاء الجدول الخاص بها)

CREATE OR REPLACE FUNCTION DATE_CONVERTER (GREG_DATE DATE)RETURN DATE IS
GDATE DATE;
H_D NUMBER;
H_M NUMBER;
H_Y NUMBER;
HDATE DATE;
N_D NUMBER;
BEGIN /********************** CREATED BY AMATURE ORACLE **************************/
SELECT GREG, HIJRA
INTO GDATE, HDATE
FROM GDATE_TO_HDATE WHERE G_YEAR = TO_CHAR(GREG_DATE,'YYYY') AND G_MONTH = TO_CHAR(GREG_DATE,'MM');


	IF GREG_DATE = GDATE THEN
		RETURN HDATE;
		
	ELSE IF GREG_DATE > GDATE THEN
	
	BEGIN SELECT H_DAY, H_MONTH, H_YEAR, HIJRA, N_DAY
		INTO H_D, H_M, H_Y, HDATE, N_D
		FROM GDATE_TO_HDATE WHERE G_YEAR = TO_CHAR(GREG_DATE,'YYYY') AND G_MONTH = TO_CHAR(GREG_DATE,'MM');
		
		IF N_D = 29 THEN
		BEGIN IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > 30 THEN
				RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - N_D)-1|| '-' || (H_M+1) || '-' || H_Y);

			IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D = 30 THEN
				RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D)-1|| '-' || (H_M) || '-' || H_Y);
				
			ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D < N_D THEN
				RETURN (TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1 || '-' || (H_M) || '-' || H_Y);
				
			ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D = N_D THEN
				RETURN (((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D)-1) || '-' || H_M || '-' || H_Y);
			END IF;
			END IF;
			END IF;
			END IF;
		END;
		ELSE IF N_D = 30 THEN
		BEGIN IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D < N_D THEN
	   			RETURN (TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1 || '-' || H_M || '-' || H_Y);

			ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) - N_D != 1 THEN
	 			  RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - N_D)-1 || '-' || (H_M + 1) || '-' || H_Y);
	 			  
	 		ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) - N_D = 1 THEN
	 			  RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1) || '-' || (H_M) || '-' || H_Y);


			ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D = N_D THEN
				   RETURN ( ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) -1) || '-' || (H_M) || '-' || H_Y);
			
			END IF;
			END IF;
			END IF;
			END IF;
		END;
		END IF;
	END IF;
	END;
	END IF;
	END IF;
EXCEPTION
	WHEN OTHERS THEN
	RETURN NULL;		
END;



TABLE GDATE_TO_HDATE
(G_MONTH	NUMBER(2),
G_YEAR		NUMBER(4),
GREG		DATE,
H_DAY 		NUMBER(2),
H_MONTH	NUMBER(2),
H_YEAR 	NUMBER(4),
HIJRA  	DATE,
N_DAY		NUMBER(2));



تمت إضافة الملف بالمرفقات
إدارة المنتدي

CONVERT_DATE.zip

رابط هذا التعليق
شارك

شكرا لك على هذا المجهود وهذه الفكرة الجديدة ..

اعتقد انه يمكن استخدام هذه الطريقة مع كل انواع قواعد البيانات الاخرى ..

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

- هل سيتم التحويل الى التاريخ الهجري قبل الحفظ مباشرة .

- هل سيمكن استخدام الfunctions الخاصة مع التاريخ .. مثل طرح تاريخين أو جمع أو ... فى حالة تخزين التاريخ بالهجري؟

- فى حالة الفرز على التاريخ مثلا .. هل سيكون قبل التحويل ام بعد التحويل ؟؟

ايهما افضل ان يخزن التاريخ بالميلادى ثم تستخدم هذه الطريقه للتحويل
ام ان يحفظ التاريخ بالشكل الهجري مباشرة ؟؟

عند وجود تقرير عن التاريخ من ... الى ... هل الافضل التعامل مع التاريخ الهجرى مباشرة او استخدام طريقة التحويل

شكرا لك مرة اخرى

رابط هذا التعليق
شارك

شكرا اخي على هذا المجهود الطيب وفكرة فعلا تستحق التقدير وجزاك الله خير
والذي اعرفه بخصوص مشكلة التاريخ العربي له ثلاثة حلول
1- يوجد جدول جاهز به التاريخ العربي لمدة عشر سنوات ويستعملة كثير من المبرمجين
2- ان تأخذ التاريخ العربي من المستخدم عند الدخول للبرنامج وتخزنه بحقل وبجواره حقل اخر للتاريخ الميلادي
والمقارنة تكون بالميلادي
3- ان تأخذ التاريخ من الجهاز وفي حالة النقصان تزيد في نظام الوندز وعند المقارنة تحول التاريخ العربي الى رقم
مضروب اليوم بواحد والشهر بثلاثين والسنة ب 354
هذه للفائده --- اما فكرتك فهي حل جذري ان شاء الله
بالتوفيق

رابط هذا التعليق
شارك

شكرا للردود والتجاوب...

الاخ/ sky_information شكرا لك..

الأخ/ Amged
بحصولك على التاريخ الهجري بعد مقارنته بالتاريخ الميلادي من الممكن ان تعمل كل شيء لنفرض مثل..

ليكن عندك شاشة تحتوي على عدة أعمدة منها عمود للتاريخ الميلادي وعمود آخر للهجري بامكانك ان تضع أي تريجر تراه مناسب إما post أو key_next على عمود الميلادي وسيتم عرض التاريخ الهجري أو تعمل تريجر على مستوى الفورم pre_commit أو on_commit يتم من خلاله فقط إرسال التاريخ الميلادي للـ function ليتم عرض التاريخ الهجري غرار الكود التالي وللعلم ان استخدم الـ function فقط في طباعة التقارير أنا أقوم بحفظ التاريخ ميلادي وعند طباعة التقارير يتم اظهار التاريخ الهجري.. وللعلم بامكانك تستخدم التاريخ الهجري حتى في الحفظ وتعمل معاك 100% ان شاء الله وفي ارسال التاريخ للتقرير..

begin select date_converter(:g_date) into :h_date from dual; end;



المثال السابق يوضح كيفية إستخدم الـ function في الفورم..

الأخ/ محمد علي
شكرا جزيلا على ردك الجميل..

تم تعديل بواسطة Amateur
رابط هذا التعليق
شارك

الأخ / Amateur

شكرا لك على الايضاح

جزاك الله خيرا

واعتقد اننا سننتظر منك المزيد .. من الحلول الجذرية ..

شكرا لك مرة اخرى

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

اخي Amateur
السلام عليكم ورحمة الله وبركاتة:-
كل عام وانت بخير ياخي

احب استوضح عن الاتي :
اولا – انا طبقت الكود واشتغل لكن المشكلة في الاتي
1- انا ادخلت البيانا كالتي:
2- الشهر الميلاد 1
3- السنه الميلادية 2007
4- التاريخ الميلادي 2007/01/01
5- اليوم الهجري 11
6- الشهر الهجري 12
7- السنة الهجرية 1427
8- التاريخ الهجري 1427/12/11
9- عدد ايام الشهر الهجري 29
--
سوالي :
حينما اطلب التاريخ 2007/01/02
لايعطيني التاريخ الهجري الذي يوافقة بل يعطي استثناء غير معالج والمفروض ان يعطين هذا التاريخ بالهجري
1427/12/12
هل يتم ادخال بيانات كل يوم بالصفة السابقة ام يكفي ان ادخل بيانات بداية كل شهر يعني السنة 12 سجل فقط
واذا كان بيانات كل يوم يتم ادخاليها حيكون 360 سجل في السنة فهذه طريقة متعبة0

ارجو الايضاح عزيزي ولك شكري وتقديري ،،،

رابط هذا التعليق
شارك

أخي محمد

لايتم ادخال 360 سجل ولو كان كذلك لفسدت البرمجة...!!

يتم ادخال 12 سجل للسنة الواحدة أي بدايات الاشهر الميلادية فقط ومايقابلها من الهجري فقط كما ذكرت يا اخي

ولايوجد اي استثناء فقط قم بانشاء الـ function واعمل لها compile وادخل فيها بيانات الاشهر واستخدم الكود التالي في sql وستظهر النتيجة صحيحة كماهي موجوده عندي

select date_converter('02-01-2007') 
from dual result is
12-12-1427



انتظر ردك

تم تعديل بواسطة Amateur
رابط هذا التعليق
شارك

شكرا اخي Amateur
علي سرعة اجبتك 0 وهذا يدل على كرم اخلاقك جعل الله ماتقدمه في موازين حسناتك وكثر الله من امثالك
ولكن العملية لم تضبط معي 00 واكيد الخطاء عندي لايخرج عن احتمالين
1- اما ان تنسيق التاريخ في قاعدة البيانات يختلف عن مافي FUNCTION
2- او يجب ادخال عدد 12 سجل للسنة حتى تتم المقارنة بين جميع الاشهر 29 - 30
ورقم الخطاء هو
45735
سوف احاول واخبرك بالنتيجة ان شاء الله
لك شكري وتقدير واحترامي ،،،،،

رابط هذا التعليق
شارك

أخي محمد:

للعلم انا لم أقم الا بادخال 5 أشهلا فقط من 2007 ولم اجد اي عثرة وبالنسبة لتنسيق التاريخ لايعمل مشكلة وتنسيق التاريخ في قاعدة البيانات هو DD-MM-YYYY

أنا ودي تذكر لي ماهي الرسالة التي تظهر أعرف انك ذكرت الرقم لكن أريد ماهو السبب....؟

بامكانك تقوم بتعديل بسيط على كود الـ FUNCTION وتكتب في معالجة الخطأ


exception
when others then
message(sqlerrm)



ليخبرك ماهو الخطأ

تم تعديل بواسطة Amateur
رابط هذا التعليق
شارك

اخي Amateur شكرا لاهتمامك
لقد حاولت وكان الخطاء ب SQL كالتالي:-


SQL> select date_converter('02-01-2007')
2 from dual
3 /
select date_converter('02-01-2007')
*
يوجد خطاء عن السطر 1
ORA-06503: PL/SQL: الوظيفة عادة بدون قيمة
ORA-06512: "HGVPLK.DATE_CONVERTER", line 101

رابط هذا التعليق
شارك

اخي محمد بصراحة أنا أستغرب ان الـ function تقوم بارجاع error لان اذا كان التاريخ غير المرسل لايمكن مقارنته اي غير مسجل له شيء بالجدول الاساسي يتم ارجاع قيمه فارغة من الممكن احتمالية date_format لقاعدة البيانات اهو سبب المشكلة لديك.. استعمل الكود التالي..

select date_converter(to_date('02-01-2007','dd-mm-yyyy')) from dual;



بانتظار ردك..

رابط هذا التعليق
شارك

انظر يأخي للخطاء الغريب فعلا

SQL> select date_converter(to_date('02-01-2007','dd-mm-yyyy')) from dual;
select date_converter(to_date('02-01-2007','dd-mm-yyyy')) from dual
*
يوجد خطاء عند السطر 1

يجب ان تتراوح اعداد السنه ( الكاملة ) بين – 4713 و+ 9999 وليس 0
1841 - ORA

رابط هذا التعليق
شارك



تم إيجادالأخطاء التالية
لم تتمكن من تحميل الملف وذلك بسبب كبر حجمه أو بسبب عدم صلاحية هذه النوعيات من الملفات. الرجاء التأكد من ججم الملف ونوعه ثم إعادة المحاولة.




أنا أحاول أنني أنزل لك مرفق في الفورم ونشوف بالضبط الخطأ لاني بصراحة جلست ألعب بالـ function والجدول لاجل يطلع error مثل كذا ماهي راضيه تطلع..!! :)

هل من الممكن تسويلي print screen من شاشة الـ sql تستعرض لي فيها بيانات الجدول والاستعلام.. ممكن فيه حاجة بالجدول..
رابط هذا التعليق
شارك

اخي Amateur
السلام عليكم ورحمة الله وبركاتة :-
لقد ازعجتك ولكن مثلك من يتحمل - اللهم اغفر ذنوب اخي

SQL*Plus: Release 9.0.1.0.1 - Production on ÇáÃÍÏ Ðæ ÇáÍÌÉ 17 08:01:15 1427

© Copyright 2001 Oracle Corporation.  All rights reserved.


ãÊÕá È:
Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
With the Partitioning option
JServer Release 9.0.1.1.1 - Production

SQL> desc GDATE_TO_HDATE ;
ÇáÇÓã                                     ÎÇáí¿    ÇáäæÚ
----------------------------------------- -------- -------------------------
G_MONTH                                            NUMBER(2)
G_YEAR                                             NUMBER(4)
GREG                                               DATE
H_DAY                                              NUMBER(2)
H_MONTH                                            NUMBER(2)
H_YEAR                                             NUMBER(4)
HIJRA                                              DATE
N_DAY                                              NUMBER(2)

SQL> select * from GDATE_TO_HDATE ;

  G_MONTH     G_YEAR GREG            H_DAY    H_MONTH     H_YEAR HIJRA
---------- ---------- ---------- ---------- ---------- ---------- ----------
    N_DAY
----------
        1       2007 11/12/1427         11         12       1427 21/02/0831
       29

رابط هذا التعليق
شارك

أخي محمد أنا وراك وراك إلى أن نحل المشكلة لانه مو معقول تشتغل عندي ولا تشتغل عندك والسبب غير مقنع أبدا..


FUNCTION DATE_CONVERTER_TEST (GREG_DATE DATE)RETURN DATE IS
GDATE DATE;
H_D NUMBER;
H_M NUMBER;
H_Y NUMBER;
HDATE DATE;
N_D NUMBER;
BEGIN
SELECT GREG, HIJRA
INTO GDATE, HDATE
FROM GDATE_TO_HDATE
WHERE G_YEAR = TO_CHAR(GREG_DATE,'YYYY')
AND G_MONTH = TO_CHAR(GREG_DATE,'MM');
 IF GREG_DATE = GDATE THEN
  RETURN HDATE;
 ELSE IF GREG_DATE > GDATE THEN
 BEGIN
  SELECT H_DAY, H_MONTH, H_YEAR, HIJRA, N_DAY
  INTO H_D, H_M, H_Y, HDATE, N_D
  FROM GDATE_TO_HDATE
  WHERE G_YEAR = TO_CHAR(GREG_DATE,'YYYY')
  AND G_MONTH = TO_CHAR(GREG_DATE,'MM');
  IF N_D = 29 THEN
  BEGIN
IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) >= 31 THEN
 RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - N_D)-1 || '-' || (H_M+1) || '-' || H_Y);
ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) <= 30 THEN
  RETURN (((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D)-1) || '-' || (H_M) || '-' || H_Y);
ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D < N_D THEN
 RETURN (TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) -1|| '-' || H_M || '-' || H_Y);
ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D >= N_D THEN
 RETURN (((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D)-1) || '-' || H_M || '-' || H_Y);
END IF;
END IF;
END IF;
END IF;
  END;
  ELSE IF N_D = 30 THEN
  BEGIN
IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D < N_D THEN
	RETURN (TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1 || '-' || H_M || '-' || H_Y);
ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) - N_D != 1 THEN
	RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - N_D)-1 || '-' || (H_M+1) || '-' || H_Y);
 ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) - N_D = 1 THEN
	RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1) || '-' || (H_M) || '-' || H_Y);
ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D = N_D THEN
	RETURN ( ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) -1) || '-' || (H_M) || '-' || H_Y);
END IF;
END IF;
END IF;
END IF;
  END;
  END IF;
 END IF;
 END;
 END IF;
 END IF;
EXCEPTION
 WHEN OTHERS THEN
 RETURN NULL;
END;
/



شوف هذي النسخة طلعتها من قاعدة البيانات علما انني متاكد انها نفس السابقة والدليل انك انشأتها من دون أي أخطاء في الانشاء لكن زيادة إحتياط .. للعمل أنا فقط قمت بتغيير اسمها الى DATE_CONVERTER_TEST كماترى فقط أي عند الاستعلام فقط تستخدم


select date_converter_test(to_date('05-01-2007','dd-mm-yyyy')) from dual;



بس أثناء فتحك للـ SQ أكتب الأمر التالي spool c:\sql.txt بعد ذلك انسخ الـ function والصقها في الـ sql بعد ذلك استعرض الجدول ونفذ الكود السابق وفي الأخير اكتب spool off; سيظهر لك الملف ارسله لي على الايميل حلو..

الله يعينك علي بنسب لك لحد مايشتغل..

رابط هذا التعليق
شارك

اخي وعزيزي Amateu
السلام عليكم ورحمة الله وبركاتة :-
ابشرك اشتغل الكود 100% وكانت النتيجة 1427/12/15
وجربته ايضا على الفرم وكانت النتيجة مذهله فعلا
ومهما وضعت من الكلمات المديح فهي قليلة في حقك بصراحه
واسال الله ان يسدد خطاك ياخي واي خدمة انا مستعد00
وعلاوه على ذلك سوف بأذن الله اقدم لك هدية باسمك في هذا المنتدى
عبارة عن مشاركة وهي طريقة البحث بطريقة متقدمة وهي البحث باكثر من متغير مجتمعة او كل واحد على حده
على حسب رغبة المستخدم مثلا الاسم + الجنسية + رقم الهوية + العمر 0000 الخ مهما كان عددها
وسوف ابداء ان شاء الله في اعدادها
ولك تحياتي وتقديري ،،،،
انتظر المشاركة000؟

رابط هذا التعليق
شارك


اخي وعزيزي Amateu
السلام عليكم ورحمة الله وبركاتة :-
ابشرك اشتغل الكود 100% وكانت النتيجة 1427/12/15
وجربته ايضا على الفرم وكانت النتيجة مذهله فعلا
ومهما وضعت من الكلمات المديح فهي قليلة في حقك بصراحه
واسال الله ان يسدد خطاك ياخي واي خدمة انا مستعد00
وعلاوه على ذلك سوف بأذن الله اقدم لك هدية باسمك في هذا المنتدى
عبارة عن مشاركة وهي طريقة البحث بطريقة متقدمة وهي البحث باكثر من متغير مجتمعة او كل واحد على حده
على حسب رغبة المستخدم مثلا الاسم + الجنسية + رقم الهوية + العمر 0000 الخ مهما كان عددها
وسوف ابداء انشاء الله في اعدادها
ولك تحياتي وتقديري ،،،،
انتظر المشاركة000؟


الله يجزاك بالخير ولا يهمك احنا حاضرين وباي وقت والله ويشهد اني انبسطت بس يوم قلت انه اشتغل معاك وهذا هو المهم اما بالنسبة للمشاركة اتمنى ان تكون باسمك لانه عملك فعلا وتشكر على كل مجهود تقوم به.. :)
رابط هذا التعليق
شارك

  • بعد 1 شهر...
  • بعد 2 شهور...

فكرة رائعة جزاك الله خير
وممكن الحصول على التاريخ الميلادي و المقابل له بالهجري
من اى جهة تتعامل مع التقويم :huh:

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

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

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

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  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.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية