4 طرق لمقارنة تاريخين في جافا

جدول المحتويات:

4 طرق لمقارنة تاريخين في جافا
4 طرق لمقارنة تاريخين في جافا

فيديو: 4 طرق لمقارنة تاريخين في جافا

فيديو: 4 طرق لمقارنة تاريخين في جافا
فيديو: الدرس الأول: كتابة أول برنامج بلغة الجافا 2024, يمكن
Anonim

توجد طرق عديدة لمقارنة تاريخين في لغة برمجة Java. في أجهزة الكمبيوتر ، يتم تمثيل التاريخ برقم (نوع البيانات طويل) بوحدات زمنية - أي عدد المللي ثانية التي انقضت منذ 1 يناير 1970. في جافا ، التاريخ هو كائن ، مما يعني أنه يحتوي عدة طرق لإجراء المقارنات. أي طريقة مستخدمة لمقارنة تاريخين هي في الأساس مقارنة الوحدات الزمنية للتاريخين.

خطوة

طريقة 1 من 4: استخدام CompareTo

4301351 1
4301351 1

الخطوة 1. استخدم المقارنة

يطبق كائن التاريخ "المقارنة" بحيث يمكن مقارنة تاريخين مع بعضهما البعض مباشرةً باستخدام طريقة "" مقارنة. إذا كان كلا التاريخين لهما نفس الرقم في الوحدات الزمنية ، فإن الطريقة ترجع صفرًا. إذا كان التاريخ الثاني أقل من الأول ، يتم إرجاع قيمة أقل من الصفر. إذا كان التاريخ الثاني أكبر من الأول ، تُرجع الطريقة قيمة أكبر من الصفر. إذا كان كلا التاريخين متطابقين ، فستُرجع الطريقة قيمة فارغة.

4301351 2
4301351 2

الخطوة 2. إنشاء كائنات تاريخ متعددة

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

    SimpleDateFormat sdf = تنسيق SimpleDateFormat الجديد ("yyyy-MM-dd"). للإعلان عن قيمة في "تاريخ الكائن" الجديد ، استخدم تنسيق التاريخ نفسه عند إنشاء التاريخ. تاريخ التاريخ 1 = sdf.parse ("1995-02-23") ؛ // date1 هو 23 فبراير 1995 Date2 = sdf.parse ("2001-10-31") ؛ // date2 هو 31 أكتوبر 2001 تاريخ التاريخ 3 = sdf.parse ("1995-02-23") ؛ // date3 هو 23 فبراير 1995

4301351 3
4301351 3

الخطوة 3. قارن بين كائنات التاريخ

سيظهر لك الكود التالي أمثلة لكل حالة - أقل من ، يساوي ، وأكبر من.

    date1.compareTo (date2) ؛ // date1 <date2 ، تُرجع قيمة أقل من 0 date2.compareTo (date1) ؛ // date2> date1 ، تُرجع قيمة أكبر من 0 date1.compareTo (date3) ؛ // date1 = date3 ، لذلك سيخرج 0 على وحدة التحكم

الطريقة 2 من 4: استخدام التساوي ، بعد وقبل

4301351 4
4301351 4

الخطوة 1. استخدم يساوي ، بعد وبعد

يمكن مقارنة التواريخ باستخدام طرق التساوي ، وبعد ، وقبل. إذا كان تاريخان لهما نفس القيمة في الوقت المناسب ، فإن طريقة يساوي ترجع صحيحًا. سيستخدم المثال التالي كائن التاريخ الذي تم إنشاؤه في المثال طريقة المقارنة.

4301351 5
4301351 5

الخطوة 2. قارن مع الطريقة السابقة

يُظهر الكود التالي مثالاً لحالة تُرجع صواب وخطأ. إذا كان تاريخ 1 هو تاريخ قبل التاريخ 2 ، فإن الطريقة السابقة ترجع صحيحًا. خلاف ذلك ، فإن الطريقة السابقة ترجع خطأ.

    System.out.print (date1.before (date2)) ؛ // اعرض القيمة '' true '' System.out.print (date2.before (date2)) ؛ // إرجاع القيمة "خطأ"

4301351 6
4301351 6

الخطوة 3. قارن باستخدام طريقة after

يُظهر الكود التالي مثالاً لحالة تُرجع صواب وخطأ. إذا كان تاريخ 2 هو التاريخ بعد التاريخ 1 ، فإن الطريقة التالية ترجع صحيحًا. خلاف ذلك ، فإن طريقة after سيعود خطأ.

    System.out.print (date2.after (date1)) ؛ // اعرض القيمة '' true '' System.out.print (date1.after (date2)) ؛ // اعرض القيمة '' false ''

4301351 7
4301351 7

الخطوة 4. قارن مع طريقة يساوي

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

    System.out.print (date1.equals (date3)) ؛ // اعرض القيمة '' true '' System.out.print (date1.equals (date2)) ؛ // اعرض القيمة '' false ''

الطريقة الثالثة من 4: استخدام تقويم الفصل الدراسي

4301351 8
4301351 8

الخطوة 1. استخدم تقويم الفصل

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

4301351 9
4301351 9

الخطوة 2. إنشاء مثيل من التقويم

لاستخدام أساليب في Class Calendar ، يجب عليك إنشاء العديد من مثيلات التقويم. لحسن الحظ ، يمكنك استخدام القيم من مثيل تاريخ تم إنشاؤه مسبقًا.

    التقويم cal1 = Calendar.getInstance () ؛ // أعلن cal1 Calendar cal2 = Calendar.getInstance () ؛ // أعلن cal2 Calendar cal3 = Calendar.getInstance () ؛ // أعلن cal3 cal1.setTime (date1) ؛ // ضع التاريخ في cal1 cal2.setTime (date2) ؛ cal3.setTime (date3) ،

4301351 10
4301351 10

الخطوة 3. قارن cal1 و cal2 باستخدام الطريقة السابقة

الكود التالي سيخرج قيمة tr

    System.out.print (cal1.before (cal2)) ؛ // سيعيد القيمة "صواب"

4301351 11
4301351 11

الخطوة 4. قارن cal1 و cal2 باستخدام طريقة after

ستُرجع الشفرة التالية خطأ لأن cal1 هو التاريخ قبل cal2.

    System.out.print (cal1.after (cal2)) ؛ // إرجاع القيمة "خطأ"

4301351 12
4301351 12

الخطوة 5. قارن cal1 و cal2 باستخدام طريقة equals

سيُظهر الكود التالي مثالًا لحالة تُرجع صوابًا وخطأ. تعتمد الحالة على مثيل التقويم الذي تتم مقارنته. ستُرجع الشفرة التالية القيمة "true" ، ثم "false" في السطر التالي.

    System.out.println (cal1.equals (cal3)) ؛ // إرجاع القيمة "true": cal1 == cal3 System.out.print (cal1.equals (cal2)) ؛ // إرجاع القيمة '' false '': cal1! = cal2

طريقة 4 من 4: استخدام getTime

4301351 13
4301351 13

الخطوة 1. استخدم getTime

يمكنك أيضًا مقارنة قيم الوحدة الزمنية لتاريخين بشكل مباشر ، على الرغم من أن الطريقتين السابقتين قد تكونان أسهل في القراءة ويفضلان. بهذه الطريقة ستقارن نوعين بدائيين من البيانات ، بحيث يمكنك استخدام المعاملين "" و "==".

4301351 14
4301351 14

الخطوة 2. قم بإنشاء كائن وقت بتنسيق الأرقام الطويلة

قبل أن تتمكن من مقارنة التواريخ ، يجب عليك إنشاء قيمة عدد صحيح طويل من كائن التاريخ الذي تم إنشاؤه مسبقًا. لحسن الحظ ، فإن طريقة getTime () ستفعل ذلك من أجلك.

    long time1 = getTime (date1) ؛ // أعلن عن الوقت الأولي 1 من التاريخ 1 طويل الوقت 2 = getTime (التاريخ 2) ؛ // يعلن عن قيمة الوقت البدائي 2 للتاريخ 2

4301351 15
4301351 15

الخطوة 3. قم بإجراء مقارنة أقل من

استخدم المعامل أقل من (<) لمقارنة هاتين القيمتين الصحيحتين. نظرًا لأن time1 أقل من time2 ، ستظهر الرسالة الأولى. يتم تضمين عبارة else لإكمال بناء الجملة.

    if (time1 <time2) {System.out.println ("date1 هو التاريخ قبل date2") ؛ // سيظهر لأن time1 <time2} else {System.out.println ("التاريخ 1 ليس تاريخًا قبل التاريخ 2") ؛ }

4301351 16
4301351 16

الخطوة 4. قم بإجراء أكبر من المقارنة

استخدم المعامل الأكبر من (>) لمقارنة هاتين القيمتين الصحيحتين. لأن الوقت 1 أكبر من الوقت 2 ، ستظهر الرسالة الأولى. يتم تضمين عبارة else لإكمال بناء الجملة.

    if (time2> time1) {System.out.println ("date2 هو التاريخ بعد التاريخ 1") ؛ // سيظهر لأن time2> time1} else {System.out.println ("date2 ليس التاريخ بعد التاريخ 1") ؛ }

4301351 17
4301351 17

الخطوة 5. قم بإجراء مقارنة يساوي

استخدم دالة المعامل للتحقق من تساوي القيم (==) لمقارنة هذين العددين الصحيحين. نظرًا لأن time1 يساوي time3 ، ستظهر الرسالة الأولى. إذا دخل مسار البرنامج في عبارة else ، فهذا يعني أن المرتين ليس لهما نفس القيمة.

    if (time1 == time2) {System.out.println ("كلا التاريخين متماثلان") ؛ } else {System.out.println ("الأول ليس هو الثاني")؛ // سيظهر لأن time1! = time2}

موصى به: