الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مفااااجأة الموسم ( برنامج لتحويل التاريخ )

مغلق
بدأه ابوخلف في 22 نوفمبر 2003 · 10 رد · 1,781 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

برنامج للتحويل من الميلادي الى الهجر ي مايخرش المية

حسب تقويم ام القرى

PROCEDURE GDATE_TO_HDATE4 IS

H_DAY NUMBER(2):=0;

HDAY VARCHAR2(2);

H_MONTH NUMBER(2):=1;

HMONTH VARCHAR2(2);

H_YEAR NUMBER(4):=1;

FGDATE DATE;

I_LOOP NUMBER;

HY NUMBER;

MONTH_NAME VARCHAR2(40);

begin

FGDATE:=TO_DATE('14-JUL-0622','DD-MON-YYYY');

I_LOOP:=:G_DATE-FGDATE;

LOOP

IF I_LOOP<355 THEN

EXIT;

END IF;

HY:=TRUNC(H_YEAR/30)*30;

IF (H_YEAR-HY) IN (2,5,7,10,13,16,18,21,24,26,29) THEN

H_YEAR:=H_YEAR+1;

I_LOOP:=I_LOOP-355;

ELSE

I_LOOP:=I_LOOP-354;

H_YEAR:=H_YEAR+1;

END IF;

END LOOP;

FOR I IN 1..I_LOOP LOOP

H_DAY:=H_DAY+1;

IF (H_MONTH=1 OR H_MONTH=3 OR H_MONTH=5 OR H_MONTH=7 OR H_MONTH=9 OR H_MONTH=11) AND H_DAY>30 THEN

H_MONTH:=H_MONTH+1;

H_DAY:=1;

END IF;

IF (H_MONTH=2 OR H_MONTH=4 OR H_MONTH=6 OR H_MONTH=8 OR H_MONTH=10)AND H_DAY>29 THEN

H_MONTH:=H_MONTH+1;

H_DAY:=1;

END IF;

HY:=TRUNC(H_YEAR/30)*30;

IF (H_YEAR-HY) IN (2,5,7,10,13,16,18,21,24,26,29) THEN

IF H_MONTH=12 AND H_DAY>30 THEN

H_MONTH:=H_MONTH+1;

H_DAY:=1;

IF H_MONTH>12 THEN

H_YEAR:=H_YEAR+1;

H_MONTH:=1;

END IF;

END IF;

ELSE IF H_MONTH=12 AND H_DAY>29 THEN

H_MONTH:=H_MONTH+1;

H_DAY:=1;

IF H_MONTH>12 THEN

H_YEAR:=H_YEAR+1;

H_MONTH:=1;

END IF;

END IF;

END IF;

END LOOP;

SELECT DECODE(H_MONTH

,1,'محرم'

,2,'صفر'

,3,'ربيع الأول'

,4,'ربيع الثاني'

,5,'جمادى الأولى'

,6,'جمادى الثانية'

,7,'رجب'

,8,'شعبان'

,9,'رمضان'

,10,'شوال'

,11,'ذو القعدة'

,12,'ذو الحجة',NULL)INTO MONTH_NAME FROM DUAL;

IF H_DAY<10 THEN

HDAY:='0'||TO_CHAR(H_DAY);

ELSE

HDAY:=TO_CHAR(H_DAY);

END IF;

IF H_MONTH<10 THEN

HMONTH:='0'||TO_CHAR(H_MONTH);

ELSE

HMONTH:=TO_CHAR(H_MONTH);

END IF;

-- BY MPNTH NAME(لكتابة الشهر)

:H_DATE:= (HDAY||'-'||MONTH_NAME||'-'||TO_CHAR(H_YEAR));

-- BY MPNTH NUMBER)كتابة الاشهر بالارقام(

--:H_DATE:= (HDAY||'-'||HMONTH||'-'||TO_CHAR(H_YEAR));

END;

الرجاء الدعاء

اشرف خلف

post-8-1069495569_thumb.jpg

تم تعديل هذه المشاركة بواسطة ابوخلف في 22 نوفمبر 2003 في 13:06

#2

السلام عليكم

شكرا لك أخ أشرف والله يعطيك العافية .

#3

يعطيك الف عافية

#4

يعطيك العافية

#5

الله يعافيكم شباب وإن شاء الله نكون عند حسن ظنكم

#6

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

اقوم بالظغط على زر التحويل ولكن لا يتم التحويل وتخرج رسالة خطاء والامر الذي كتبتة في حدث الظغط على الزر هو GDATE_TO_HDATE4; ارجوا توضيح هذه النقطة

اما النقطة الثانية هل التكست الثاني h_date يجب ان يكون نوعه char او date

وشكراً لكم

#7

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

اقوم بالظغط على زر التحويل ولكن لا يتم التحويل وتخرج رسالة خطاء والامر الذي كتبتة في حدث الظغط على الزر هو GDATE_TO_HDATE4; ارجوا توضيح هذه النقطة

اما النقطة الثانية هل التكست الثاني h_date يجب ان يكون نوعه char او date

وشكراً لكم

#8

حقل G_DATE يجب أن يكون من نوع DATE

وحقل H_DATE من نوع CHAR

#9

انا عملت كذا لكن مازالت المشكلة قائمة

#10

ابو خلف

ما زالت المشكلة قائمة ارجو التوضيح

#11

فعلا زي ماحكى الاخ thadn

G_DATE DATE DD-MON-YYYY

H_DATE CHAR 30

وتكتب اس ال PROCEDURE في WHEN-BUTTON-PRESSED

وهذا ال PROCEDURE يتم كتابته في الPROGRAM UNITS

واي استفسارات انا حاضر

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…