4 דרכים להשוות שני תאריכים בג'אווה

תוכן עניינים:

4 דרכים להשוות שני תאריכים בג'אווה
4 דרכים להשוות שני תאריכים בג'אווה

וִידֵאוֹ: 4 דרכים להשוות שני תאריכים בג'אווה

וִידֵאוֹ: 4 דרכים להשוות שני תאריכים בג'אווה
וִידֵאוֹ: Inkscape: How to Change Default Settings 2024, נוֹבֶמבֶּר
Anonim

ישנן דרכים שונות להשוות תאריכי ג'אווה. באופן פנימי, תאריך מיוצג כנקודת זמן (ארוכה) - מספר האלפיות השנייה שחלפו מאז 1 בינואר 1970. ב- Java, תאריך הוא אובייקט, כלומר הוא כולל מספר שיטות להשוואה. כל שיטה להשוואת שני תאריכים תשווה בעיקרה את זמני התאריכים.

צעדים

שיטה 1 מתוך 4: שימוש ב- comparTo

4301351 1
4301351 1

שלב 1. השתמש ב- comparTo

תאריך מיישם השוואה וכך ניתן להשוות שני תאריכים ישירות בשיטת comparTo. אם התאריכים הם לאותה נקודת זמן, השיטה מחזירה אפס. אם התאריך המשווה נמצא לפני ארגומנט התאריך, ערך פחות מאפס מוחזר. אם התאריך המשווה הוא אחרי ארגומנט התאריך, ערך גדול מאפס מוחזר. אם התאריכים שווים, ערך 0 מוחזר.

4301351 2
4301351 2

שלב 2. צור את אובייקטים של תאריך

יהיה עליך ליצור כל אובייקט תאריך לפני שתוכל להשוות ביניהם. אחת הדרכים לעשות זאת היא להשתמש במחלקה SimpleDateFormat. הוא מאפשר כניסה קלה של ערכי תאריך לאובייקטים של תאריכים.

    SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd"); // להצהרת ערכים באובייקטים של תאריך חדש. השתמש באותו פורמט תאריך בעת יצירת תאריכים תאריך תאריך 1 = sdf.parse ("1995-02-23"); // תאריך 1 הוא 23 בפברואר 1995 תאריך תאריך 2 = sdf.parse ("2001-10-31"); // תאריך 2 הוא 31 באוקטובר 2001 תאריך תאריך 3 = sdf.parse ("1995-02-23"); // תאריך 3 הוא 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. השתמש בשווים, אחרי ולפני

ניתן להשוות תאריכים עם השווים, אחרי ואחרי שיטות. אם שני תאריכים הם לאותה נקודת זמן, שיטת השווים תחזיר אמת. הדוגמאות ישתמשו בתאריכים שנוצרו בעבר משיטת comparTo.

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, לאחר החזרה נכון. אם זה לא, לאחר החזרות שקר.

    System.out.print (date2.after (date1)); // מדפיסה true.out.print (date1.after (date2)); // מדפיסה שקר

4301351 7
4301351 7

שלב 4. השווה באמצעות שיטת השווים

הקוד להלן מציג מקרה נכון ושקר. אם התאריכים שווים, שווה מחזיר נכון. אם הם לא, שווים מחזירים שקר.

    System.out.print (date1.equals (date3)); // מדפיסה true.out.print (date1.equals (date2)); // מדפיסה שקר

שיטה 3 מתוך 4: שימוש בשיעור לוח השנה

4301351 8
4301351 8

שלב 1. השתמש בלוח השנה

למחלקת לוח השנה יש גם שיטות השוואה, שוות, אחרי ולפני שעובדות באותו אופן כפי שתואר לעיל עבור מחלקת התאריכים. כך שאם פרטי התאריך מוחזקים בלוח שנה, אין צורך לחלץ את התאריך רק כדי לבצע השוואה.

4301351 9
4301351 9

שלב 2. צור מופעים של לוח שנה

כדי להשתמש בשיטות לוח השנה, תזדקק לכמה מופעי לוח שנה. למרבה המזל, אתה יכול פשוט לתפוס את הזמנים ממופעי התאריך שכבר נוצרו.

    לוח שנה cal1 = Calendar.getInstance (); // מצהיר על cal1 לוח שנה cal2 = Calendar.getInstance (); // מכריז cal2 לוח שנה 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, ההודעה הראשונה אמורה להדפיס. המשפט אחר כלול לתחביר תקין.

    if (time1 <time2) {System.out.println ("תאריך 1 לפני תאריך 2"); // ידפיס מאז time1 <time2} אחר {System.out.println ("תאריך 1 אינו לפני תאריך 2"); }

4301351 16
4301351 16

שלב 4. בצע השוואה גדולה יותר

השתמש בסמל הגדול יותר (>) כדי להשוות בין שני הערכים השלמים הללו. מכיוון שזמן 1 גדול משעה 2, ההודעה הראשונה אמורה להדפיס. המשפט אחר כלול לתחביר תקין.

    if (time2> time1) {System.out.println ("תאריך 2 אחרי תאריך 1"); // ידפיס מאז time2> time1} אחר {System.out.println ("תאריך 2 אינו אחרי תאריך 1"); }

4301351 17
4301351 17

שלב 5. בצע השוואה שווה

השתמש בסמל כדי לבדוק אם יש שוויון (==) כדי להשוות בין שני ערכי המספר השלם לשוויון. מכיוון שזמן 1 שווה לזמן 3, ההודעה הראשונה אמורה להדפיס. אם התוכנית מגיעה לאמירה אחרת, המשמעות היא שהזמנים אינם שווים.

    if (time1 == time2) {System.out.println ("התאריכים שווים"); } אחרת {System.out.println ("התאריכים אינם שווים"); // יודפס מאז time1! = time2}

מוּמלָץ: