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

عرض صيغة مجردة تعبر عن الوقت

بدأه vector_ever في 4 يونيو 2012 · 17 رد · 1,197 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أثناء تحضيري لدروس الرسوم البيانية أردت ان أحضر لدرس جديد وقد كتبت الكود لكن مازال هناك جزء أود ان أشرحه وهو يتعلق بالوقت حيث ان موضوع الرسم البياني هنا يتعلق بالوقت اي التمثيل للوقت والتاريخ

كالآتي

TaskSeries s1 = new TaskSeries("Scheduled");
        s1.add(new Task("Write Proposal",new SimpleTimePeriod(date(1, Calendar.APRIL, 2001),date(5, Calendar.APRIL, 2001))));
        s1.add(new Task("Obtain Approval",new SimpleTimePeriod(date(9, Calendar.APRIL, 2001),date(9, Calendar.APRIL, 2001))));

هذا الكود جزء من كود عن الـ Guntt Chart

هنا نلاحظ انه عرض كل جزء مع التريخ والوقت لكن ما أريده واتمناه هل من المككن تمثيل كل جزء بشكل يمثل الوقت لكن بشكل مجرد بغض النظر عن السنة واليوم والشهر والساعة والدقيقة

أي مجرد تمثيل لوحدة الوقت دون تعيين ما تعني او ما تساوي كل وحدة يعني اتمنى ان امثل الكود السبق بطريقة ان يكون الوقت مثلا للـ "Write Proposal" يبدأ عند 5 وينتهي عن 9

والـ "Obtain Approval" تبدأ عن 7 وتنتهي عند 13 بغض النظر عما تعنيه هذه الأرقام وما تمثل هل هي ساعة او دقيقة او ثانية هذا ما أسعى له وهذا ما أحاوي عمله

هل من مساعدة

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#2

sorry i Mean Gantt Chart not Guntt chart

Gantt Chart

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#3

اهلا اخي Vector Ever ولكن على عكس العاده فسؤالك هذه المره مبهم ولم استطع فهمه ، هل يمكن ان تعيد صياغة السؤال؟

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#4
mental-driller كتب:

اهلا اخي Vector Ever ولكن على عكس العاده فسؤالك هذه المره مبهم ولم استطع فهمه ، هل يمكن ان تعيد صياغة السؤال؟

حياك الله أخي وشكرا لردك وانا آسف اذا كان ردي غير واضح ولذلك سأحاول أن أوضح السؤال بصيغة أخرى

في البداية الهدف هو تمثيل البيانات في رسومات غانت Gantt Chart

وبالأساس الاعتماد في تمثيل هذه البينات يكمن في تمثيل الوقت و مبدأ العمل بها هو أن كل وحدة يتم تمثيلها في هذها النوع من التمثيل البياني يعتمد على صيغة وقتية بمعنى انه له وقت معين لبدأ التشغيل ووقت معين للنهاية اي دورة زمنية محددة

الشكل التاني يبين ما أعنيه

post-152477-002060900 1339170289_thumb.j

لدينا 8 مهام Tasks وكل مهمة من هذه المهام لها دورة حياة زمنية بمعنى انها تبدأ في تاريخ معين وتنتهي في تاريخ معين آخر

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

فيصبح مثلا ان المهمة الاولى حياتها الزمينة على هذا الشكل وهو {13:05 09/11/2011 - 07:45 12/04/2013} وهكذا هلم جرا لكل مهمة تاريخا المعين في البداية والنهاية

وطبعا كما أسلفت انه من الممكن أن يقتصر التاريخ فقط على الزمن او على الشهر او على السنة او على الكل مجتمعين

الكود الذي قمت بكتابته والموجود في السؤال أعلاه يعبر عن نفس الأمر

TaskSeries s1 = new TaskSeries("Scheduled");
s1.add(new Task("Write Proposal",new SimpleTimePeriod(date(1, Calendar.APRIL, 2001),date(5, Calendar.APRIL, 2001))));
s1.add(new Task("Obtain Approval",new SimpleTimePeriod(date(9, Calendar.APRIL, 2001),date(11, Calendar.APRIL, 2001))));

لدينا هنا كما نرى 2 Tasks مهمتين اثنين الأولى وهي "Write Proposal" تبدأ في التاريخ 01/04/2001 وتنتهي في التاريخ 05/04/2001

أما المهمة الثانية "Obtain Approval" تبدأ في التاريخ 09/04/2001 وتنتهي في 11/04/2001

حتى الآن لا يوجد مشاكل لكنني أريد ان أمثل بداية ونهاية كل مهمة بصيغة مطلقة اي تمثيل وقت لا يعبر عن تاريخ معين فقط رقم يعني لا تواريخ

بمعنى أريد أن يكون مثلا تمثيل المهمتين السابقتين كالتالي

"Write Proposal" تبدأ في التاريخ 5 وتنتهي في التاريخ 9

"Obtain Approval" تبدا في 7 وتنتهي في 13

أعود واكرر لا يهم ما تعنيه هذه الارقام هل هي دقائق ام ساعات ام تواريخ مجرد تمثيل لكل مهمة حسب القيمة المعطى لها

الآن اللعب سيكون على الكود فالكود السالف ذكره كتب خصيصا ليمثل تاريخ اليوم والشهر والسنة لكل مهمة أريد أن اطتب الصيغة السابقة بشكل لا يتم في ذكر تاريخ محدد كما شرحت

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

أتمنى أن أكون قد أصلت الفكرة وقد بذلت قصاارى جهدي في مجاولة الشرح هذه المرة

وشكرا على كل حال

المرفقات
Gantt Chart1.jpg

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#5

بما أنك تريد تمثيل الوقت بشكل مطلق فيمكنك مثلا اعتماد نقطة مرجعية ولنفترض بداية السنة الحالية أو مثلا لحظة تشغيل البرنامج أو أول توقيت في المهام المذكورة ثم تطرحه من جميع التواقيت فتحصل على أرقام تمثل الأيام أو الأشهر بحسب الأهمية

وبعدها يمكنك تقسيم تلك الأرقام على 365 يوم لتحصل على عدد عشري يمثل التواقيت بالنسبة للسنة

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

وكمثال على التواريخ التي ذكرتها أعلاه

لو فرضنا أن المرجع هو بداية سنة 2001 وطرحناه من التواريخ المذكورة يكون لدينا

1/4/2001-1/1/2001 = 91

5/4/2001-1/1/2001 = 95

9/4/2001-1/1/2001 = 99

11/4/2001-1/1/2001 = 101

الآن سيكون لديك المجال من 1 إلى 365 يقابل المجال على المخطط عندك

فإذا فرضنا أن عرض المخطط البياني عندك بين 0 و 80حينها يجب تقييس النواتج لتناسب المجال الجديد

أي 1-365 تقابل 0-80 وبالتالي نسبة التقييس هي (365-1)/(80-0) أي 80/364 أي 0.2197802197802198 و بالتالي يجب ضرب كل عدد ناتج بهذه النسبة لتحصل على موقعها الصحيح في المخطط البياني

وفي أرقامنا السابقة يكون لدينا

91*0.2198 = 20

95*0.2198 = 20.88

99*0.2198 = 21.76

101*0.2198 = 22.2

وهكذا

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#6

شكرا للاخ ابو احمد على رده

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

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#7

السلام عليكم

أخي الكريم أنا لا أعلم الإجابة من خلال لغة الجافا

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

وكما ذكرت هذه الطريقة تستخدمها مايكروسوفت في تمثيل التاريخ

وللتأكيد افتح ملف إكسل وضع به تواريخ مختلفة وكذلك ضع التاريخ 1/1/1900 وهو التاريخ المرجعي الذي تتعتمده مايكروسوفت في برامج الأوفيس

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

ستجد أن التاريخ 1/1/1900 يقابله الرقم 1 أي اليوم الأول وهكذا ستجد التاريخ 1/4/2001 يقابله القيمة 36982 وهو عدد الأيام من التاريخ 1/1/1900 إلى التاريخ المذكور

وهكذا

وفي حال أردت الرقم بالساعات فعليك ضرب الأرقام ب 24 وعملية الفرق يجب حسابها بالساعات

هذا والله أعلم

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#8

أحببت أن أضيف أن مايكروسوفت تعتمد طريقة مختلفة في تمثيل الوقت في لغات البرمجة عن تلك المستخدمة في إكسل

حيث لديها صنف DateTime يعبر عن الوقت والتاريخ معا

لديه الخاصيتان

MinValue وتأخذ {01/01/0001 12:00:00 ص}

MaxValue وتأخذ {31/12/9999 11:59:59 م}

ويوجد لديها الخصائص ثانية ودقيقة والساعة واليوم والشهر والسنة ويوجد خاصية تدعى التك Tick وهي واحد على 10 مليون من الثانية أي كل ثانية تكافيء 10000000

تعتبر أن التاريخ الأصغري المذكور أعلاه يقابله 0 تك

وهكذا كلما ازداد عدد الثواني يتم حساب التك المقابل له

إلى أن نصل إلى أعلى قيمة المذكورة أعلاه أيضا ويقابلها

3155378975999999999 تك wacko.gif

وذلك لاستخدامها في قياسات الأزمنة الداخلية للتنفيذ والتي تقترب من نبضات

المعالج

أظن أنك الآن ستتخلى عن المشروع smile.gif

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#9

لقد قلت بان معنى الارقام لا يهمك، ولكن هل تريد ان تكون الارقام صغيره : اقل من مائه مثلا؟ ام تريد ان تكون لها اي قيمه ؟

اذا كنت تريد ان تكون الارقام صغيره فهناك احتمال بان ياخذ اكثر من تاريخ نفس القيمه، ام اذا كنت لا تمانع فالامر اشبه بانك تريد عمل hashCode للتاريخ بحيث كل تاريخ له قيمه مميزه

واحد هذه الطرق هو

hash = day *1 + month * 10 + year * 100
or
hash = day * 100 + month * 10 + year * 1

لا ادري اذا اقتربت مما تريده

تحياتي

1

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#10

أجريت بحث بسيط على SimpleTimePeriod فوجدت صانع الكائنات التالي

SimpleTimePeriod(long start, long end)

تحويل أي تاريخ بأي قيمة إلى ميلي ثواني ووضع البداية والنهاية بغض النظر إن كان أعطاك ساعات دقائق أو أيام

المهم أن تضع بداية ونهاية

طريقة الأخ mental-driller جيدة جداً

ولن تحتاج إلى حسابات الأخ أبو أحمد المبرمج

ألقي نظرة واخبرني كيف الوضع

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#11

صدقت يا اخ علاء

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

الظاهر انها أفضل الموجود والظاهر ان هذا النوع من الرسومات لابد من ذكر التاريخ فيه بشكل مباشر

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#12

هلا عرضت علي خلاصة عملك

لأنه لا حاجة للتاريخ بشكل مباشر

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#13
علاء الصالحي كتب:

هلا عرضت علي خلاصة عملك

لأنه لا حاجة للتاريخ بشكل مباشر

تحياتي

فعلا لا حاجة للتاريخ بشكل مباشر ولهذا كتبت سؤالي هنا

ولكن الظاهر ان الكلاس المسؤول عن الـ Gantt Chart يشترط وجود تعبير للتاريخ بشكل او بأخر فحتى عندما اهمل التاريخ يعود ويسرد التاريخ ابتداءا من عام 1970 وهو التاريخ الذي تم اعتماده للتاريخ في جافا

الكود كاملا هنا

import java.awt.Dimension;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import org.jfree.data.time.SimpleTimePeriod;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;


public class GanttChart1 extends ApplicationFrame {
	public GanttChart1(String title) {
	super(title);

    TaskSeries s1 = new TaskSeries("Scheduled");

    s1.add(new Task("Write Proposal", new SimpleTimePeriod(0,3)));
    s1.add(new Task("Obtain Approval", new SimpleTimePeriod(4,7)));
    s1.add(new Task("Requirements Analysis", new SimpleTimePeriod(8,11)));
    s1.add(new Task("Design Phase", new SimpleTimePeriod(11,14)));
    s1.add(new Task("Design Signoff", new SimpleTimePeriod(13,14)));
    s1.add(new Task("Alpha Implementation", new SimpleTimePeriod(15,22)));
    s1.add(new Task("Design Review", new SimpleTimePeriod(22,25)));
    s1.add(new Task("Revised Design Signoff", new SimpleTimePeriod(25,26)));
    s1.add(new Task("Beta Implementation",new SimpleTimePeriod(26,28)));
    s1.add(new Task("Testing",new SimpleTimePeriod(28,31)));


    TaskSeries s2 = new TaskSeries("Actual");

    s2.add(new Task("Write Proposal",new SimpleTimePeriod(1,4)));
    s2.add(new Task("Obtain Approval", new SimpleTimePeriod(4,11)));
    s2.add(new Task("Requirements Analysis", new SimpleTimePeriod(11,13)));
    s2.add(new Task("Design Phase", new SimpleTimePeriod(11,14)));
    s2.add(new Task("Design Signoff", new SimpleTimePeriod(14,15)));
    s2.add(new Task("Alpha Implementation", new SimpleTimePeriod(15,18)));
    s2.add(new Task("Design Review", new SimpleTimePeriod(18,23)));
    s2.add(new Task("Revised Design Signoff",new SimpleTimePeriod(23,24)));;
    s2.add(new Task("Beta Implementation",new SimpleTimePeriod(24,29)));
    s2.add(new Task("Testing",new SimpleTimePeriod(29,31)));


    TaskSeriesCollection dataset = new TaskSeriesCollection();
    dataset.add(s1);
    dataset.add(s2);


	// create the chart...
            JFreeChart chart = ChartFactory.createGanttChart(
            "Gantt Chart Demo",  // chart title
            "Task",              // domain axis label
            "Date",              // range axis label
            dataset,             // data
            true,                // include legend
            true,                // tooltips
            false                // urls
        );    

        	// add the chart to a panel...
        	ChartPanel chartPanel = new ChartPanel(chart);
        	chartPanel.setPreferredSize(new Dimension(900, 670));
        	setContentPane(chartPanel);

        	// Extras and the modifications

        chart.getCategoryPlot().getDomainAxis().setMaximumCategoryLabelWidthRatio(10.0f);
    }

    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
    public static void main(final String[] args) {

        GanttChart1 demo = new GanttChart1("Gantt Chart Demo 1");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);

    }
}

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#14

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

لكن لو خرج الجدول عن الشهر أو السنة راح يكون في مشكلة في التكرار

النقطة في الآخر لو كان في مهمتين واحدة بتبدأ في السنة أ والثانية بتبتدأ في السنة ب

كيف راح يتم التفريق بينهم

بتهيألي المشكلة عند الحواف تبعت السنة والشهر

مش راح يعرف ايش يسوي بعدها

لكن بيضل جزئية صغيرة من حقي أحدد تاريخ بداية للمشروع ويكون هو المرجع تبعي لكل المشروع

ولو غيرت التاريخ هادا يتغير كل ترتيب المشروع

نفس الاشي على صعيد المهمة تاريخ بداية المهمة وعدد الأيام للمهمة

الموضوع بده إعادة نظر عندهم

لو حابب ممكن تعمل اشي زي هيك ونشاركك فيه بالاستفادة من الكود تبعهم

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#15

عذرا أخ علاء ما فهمت مقصدك يا ريت توضح كلامك بصياغة آخرى وشكرا

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#16

المشكلة الأساسية هنا هي

لو فرضنا أننا سنجر الشهور من السنوات فكيف يمكننا تحديد وضع شهر 2 مبدئياً هل هو 29 أو 28

ما الذي سيحصل عندما نصل إلى آخر شهر 12؟

هنا نقع في مشكلة أننا لا نستطيع تجريد التقويم عن بعضه البعض

لكن هناك حل

لو كان لدينا مرجعية نرجع إليها مثلاً تاريخ بداية المشروع

فإننا سنعر وضع السنة الحالية وسنعرف تاريخ السنة القادمة

كما أننا يمكننا أن نغير هذه المرجعية بحيث تصبح تاريخ آخر

هل وصلت الفكرة؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#17

فعلا معك حق بهذه النقطة أخ علاء لذلك انا حاولت ان اعرض الفترات الزمنية بصورة مجردة لا تعبر عن ساعة او يوم او سنة فقط كقيمة رياضية تزداد تباعا يعني ممكن الفترة الأولى تبدا من القيمة 5 وتنتهي عند 10 وتتوالى القيم حتى نصل للقيمة الاخيرة مثلا تبدا عن 400 وتنتهي عند 407 وهنا لاحظ انه لا مشكلة لدي لا بالحواف ولا باي شيء

هذا ما كنت انشده منذ البداية لكن الظاهر ان الكود بهذا الشكل غير ممكن التنفيذ وسيعود بنا لمرجعية للتاريخ اذا لم احدد ابتداءا من عام 1970

الآن النقطة التي أشرت عليها تعتبر حل جيد أخ علاء ما لم يخطر ببالك حل أفضل على كل هل لديك نقطة معينة بالكود ممكن تعديلها او تغييرها او اي اضافة تساعد على تحقيق هذا الكلام؟

وشكرا

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#18

المشكلة تكمن في SimpleTimePeriod تأخذ تاريخ أو تأخذ وقت بالملي ثانية من تاريخ 1-1-1970

وبحثت في كل ما هو Time Period لديهم ووجدت نفس المشكلة في الجميع

http://www.jfree.org/jfreechart/api/javadoc/org/jfree/data/time/TimePeriod.html

المشكلة أن TimePeriod نفسها تفرض عليك أن ترجع تاريخ البداية وتاريخ النهاية

لذا ابقها كما هيه فلن يمكننا اللعب فيها لأنه بالأغلب لن نستطيع تحصيل شيء منها

المشكلة أني غير مطلع على تشرح الحزمة بشكل جيد

ومن يعمل فيها يعمل بتجريد abstraction عالي

حاولت أن أفهم من المسؤول عن عملية تحويل التواريخ إلى قيم على الرسم لكني لم أعرف

وجدت نقطة بداية وهيه الفئة ChartFactory نفسها

يمكنك الإطلاع عليها هنا

http://grepcode.com/file/repo1.maven.org/maven2/jfree/jfreechart/1.0.1/org/jfree/chart/ChartFactory.java?av=f

حاول أن تساعدني على حسب فهمك للحزمة بمعنى الكود في الدالة createGanttChart

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

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

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

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

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

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