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

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

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

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

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

هناك طرق مختلفة لمقارنة تواريخ Java. داخليًا ، يتم تمثيل التاريخ كنقطة (طويلة) في الوقت - عدد المللي ثانية التي انقضت منذ 1 يناير 1970. في Java ، التاريخ هو كائن ، مما يعني أنه يتضمن طرقًا متعددة للمقارنة. ستعمل أي طريقة لمقارنة تاريخين بشكل أساسي على مقارنة أوقات التواريخ.

خطوات

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

4301351 1
4301351 1

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

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

4301351 2
4301351 2

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

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

    SimpleDateFormat sdf = تنسيق SimpleDateFormat جديد ("yyyy-MM-dd") ؛ // للإعلان عن القيم في كائنات التاريخ الجديد. استخدم تنسيق التاريخ نفسه عند إنشاء التواريخ Date1 = 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. استخدم يساوي ، بعد وبعد

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

4301351 5
4301351 5

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

يظهر الرمز أدناه حالة صحيحة وخاطئة. إذا كان date1 قبل date2 ، قبل إرجاع القيمة true. إذا لم يكن كذلك ، قبل أن يعود خطأ.

    System.out.print (date1.before (date2)) ؛ // يطبع صحيح System.out.print (date2.before (date2)) ؛ // مطبوعات كاذبة

4301351 6
4301351 6

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

يظهر الرمز أدناه حالة صحيحة وخاطئة. إذا كان تاريخ 2 بعد التاريخ 1 ، بعد إرجاع صحيح. إذا لم يكن كذلك ، بعد إرجاع خطأ.

    System.out.print (date2.after (date1)) ؛ // يطبع صحيحًا System.out.print (date1.after (date2)) ؛ // يطبع خطأ

4301351 7
4301351 7

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

يظهر الرمز أدناه حالة صحيحة وخاطئة. إذا كانت التواريخ متساوية ، فإن يساوي إرجاع صحيح. إذا لم تكن كذلك ، فإن يساوي إرجاع خطأ.

    System.out.print (date1.equals (date3)) ؛ // يطبع صحيحًا System.out.print (date1.equals (date2)) ؛ // يطبع خطأ

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

4301351 8
4301351 8

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

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

4301351 9
4301351 9

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

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

    التقويم 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 باستخدام من قبل

يجب طباعة الكود أدناه صحيحًا لأن cal1 قبل cal2.

    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 باستخدام يساوي

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

    System.out.println (cal1.equals (cal3)) ؛ // يطبع صحيحًا: cal1 == cal3 System.out.print (cal1.equals (cal2)) ؛ // يطبع خطأ: 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. قم بعمل أقل من المقارنة

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

    if (time1 <time2) {System.out.println ("date1 is before date2") ؛ // سيطبع منذ time1 <time2} else {System.out.println ("التاريخ 1 ليس قبل التاريخ 2") ؛ }

4301351 16
4301351 16

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

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

    if (time2> time1) {System.out.println ("date2 is after date1") ؛ // سيطبع منذ time2> time1} وإلا {System.out.println ("date2 ليس بعد تاريخ 1") ؛ }

4301351 17
4301351 17

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

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

    إذا (time1 == time2) {System.out.println ("التواريخ متساوية") ؛ } else {System.out.println ("التواريخ ليست متساوية")؛ // سيطبع منذ time1! = time2}

موصى به: