4 τρόποι σύγκρισης δύο ημερομηνιών στην Java

Πίνακας περιεχομένων:

4 τρόποι σύγκρισης δύο ημερομηνιών στην Java
4 τρόποι σύγκρισης δύο ημερομηνιών στην Java

Βίντεο: 4 τρόποι σύγκρισης δύο ημερομηνιών στην Java

Βίντεο: 4 τρόποι σύγκρισης δύο ημερομηνιών στην Java
Βίντεο: The END of Photography - Use AI to Make Your Own Studio Photos, FREE Via DreamBooth Training 2024, Δεκέμβριος
Anonim

Υπάρχουν πολλοί τρόποι σύγκρισης δύο ημερομηνιών στη γλώσσα προγραμματισμού Java. Στους υπολογιστές, μια ημερομηνία αντιπροσωπεύεται από έναν αριθμό (ο τύπος δεδομένων Long) σε μονάδες χρόνου - δηλαδή τον αριθμό των χιλιοστών του δευτερολέπτου που έχουν παρέλθει από την 1η Ιανουαρίου 1970. Στην Java, η ημερομηνία είναι ένα αντικείμενο, πράγμα που σημαίνει ότι έχει διάφορες μεθόδους σύγκρισης. Κάθε μέθοδος που χρησιμοποιείται για τη σύγκριση δύο ημερομηνιών είναι ουσιαστικά η σύγκριση των μονάδων ώρας των δύο ημερομηνιών.

Βήμα

Μέθοδος 1 από 4: Χρήση της σύγκρισης To

4301351 1
4301351 1

Βήμα 1. Χρησιμοποιήστε το compareTo

Το αντικείμενο Ημερομηνία υλοποιεί Συγκρίσιμο, έτσι ώστε 2 ημερομηνίες να μπορούν να συγκριθούν μεταξύ τους απευθείας με τη μέθοδο compareTo. Εάν και οι δύο ημερομηνίες έχουν τον ίδιο αριθμό σε μονάδες χρόνου, τότε η μέθοδος επιστρέφει μηδέν. Εάν η δεύτερη ημερομηνία είναι μικρότερη από την πρώτη, επιστρέφεται μια τιμή μικρότερη από μηδέν. Εάν η δεύτερη ημερομηνία είναι μεγαλύτερη από την πρώτη, η μέθοδος επιστρέφει μια τιμή μεγαλύτερη από μηδέν. Εάν και οι δύο ημερομηνίες είναι ίδιες, τότε η μέθοδος θα επιστρέψει μια μηδενική τιμή.

4301351 2
4301351 2

Βήμα 2. Δημιουργήστε πολλά αντικείμενα ημερομηνίας

Πρέπει να δημιουργήσετε πολλά αντικείμενα ημερομηνίας πριν τα συγκρίνετε. Ένας από τους ευκολότερους τρόπους για να το κάνετε αυτό είναι να χρησιμοποιήσετε την κλάση SimpleDateFormat. Αυτή η κλάση διευκολύνει τη μετατροπή μιας τιμής ημερομηνίας εισόδου σε αντικείμενο ημερομηνίας.

    SimpleDateFormat sdf = νέο SimpleDateFormat ("εεεε-ΜΜ-ηη"). Για να δηλώσετε μια τιμή σε μια νέα "" Ημερομηνία αντικειμένου ", χρησιμοποιήστε την ίδια μορφή ημερομηνίας κατά τη δημιουργία της ημερομηνίας. Ημερομηνία ημερομηνίας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. Χρησιμοποιήστε ίσα, μετά και πριν

Οι ημερομηνίες μπορούν να συγκριθούν χρησιμοποιώντας τις ίσες μεθόδους, μετά και πριν. Εάν δύο ημερομηνίες έχουν την ίδια τιμή στο χρόνο, η μέθοδος ισούται με την τιμή true. Το ακόλουθο παράδειγμα θα χρησιμοποιήσει το αντικείμενο ημερομηνίας που δημιουργήθηκε στη μέθοδο σύγκρισηςTo παράδειγμα.

4301351 5
4301351 5

Βήμα 2. Συγκρίνετε με την προηγούμενη μέθοδο

Ο παρακάτω κώδικας εμφανίζει ένα παράδειγμα υπόθεσης που επιστρέφει true και false. Εάν η ημερομηνία 1 είναι ημερομηνία πριν από την ημερομηνία2, η μέθοδος πριν επιστρέφει την τιμή true. Διαφορετικά, η μέθοδος before επιστρέφει false.

    System.out.print (date1.before (date2)); // εμφανίζει την τιμή "true" System.out.print (date2.before (date2)); // επιστρέφει την τιμή "false"

4301351 6
4301351 6

Βήμα 3. Συγκρίνετε χρησιμοποιώντας τη μέθοδο μετά

Ο παρακάτω κώδικας εμφανίζει ένα παράδειγμα υπόθεσης που επιστρέφει true και false. Εάν η ημερομηνία2 είναι η ημερομηνία μετά την ημερομηνία1, η μέθοδος μετά επιστρέφει αληθής. Διαφορετικά, η μέθοδος after θα επιστρέψει false.

    System.out.print (date2.after (date1)); // εμφάνιση της τιμής "true" System.out.print (date1.after (date2)); // εμφάνιση της τιμής "" false"

4301351 7
4301351 7

Βήμα 4. Συγκρίνετε με τη μέθοδο ίσα

Ο παρακάτω κώδικας εμφανίζει ένα παράδειγμα υπόθεσης που επιστρέφει true και false. Εάν και οι δύο ημερομηνίες είναι ίσες, η μέθοδος ίσον επιστρέφει αληθής. Διαφορετικά, η μέθοδος ισούται επιστρέφει ψευδής.

    System.out.print (date1.equals (date3)); // εμφάνιση της τιμής "true" System.out.print (date1.equals (date2)); // εμφάνιση της τιμής "" false"

Μέθοδος 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 (ημερομηνία 1); // βάλτε την ημερομηνία στο cal1 cal2.setTime (ημερομηνία2); cal3.setTime (ημερομηνία3);

4301351 10
4301351 10

Βήμα 3. Συγκρίνετε cal1 και cal2 χρησιμοποιώντας την προηγούμενη μέθοδο

Ο ακόλουθος κώδικας θα εξάγει την τιμή του tr

    System.out.print (cal1.before (cal2)); // θα επιστρέψει την τιμή "true"

4301351 11
4301351 11

Βήμα 4. Συγκρίνετε cal1 και cal2 χρησιμοποιώντας τη μέθοδο μετά

Ο ακόλουθος κωδικός θα επιστρέψει λανθασμένος επειδή το cal1 είναι η ημερομηνία πριν από το cal2.

    System.out.print (cal1.after (cal2)); // επιστροφή της τιμής "false"

4301351 12
4301351 12

Βήμα 5. Συγκρίνετε cal1 και cal2 χρησιμοποιώντας τη μέθοδο ίσα

Ο ακόλουθος κώδικας θα εμφανίσει ένα παράδειγμα υπόθεσης που επιστρέφει true και false. Η κατάσταση εξαρτάται από τη σύγκριση της παρουσίας του Ημερολογίου. Ο ακόλουθος κώδικας θα επιστρέψει την τιμή "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

Μπορείτε επίσης να συγκρίνετε άμεσα τις τιμές μονάδας χρόνου δύο ημερομηνιών, αν και οι δύο προηγούμενες μέθοδοι μπορεί να είναι πιο ευανάγνωστες και προτιμότερες. Με αυτόν τον τρόπο θα συγκρίνετε 2 πρωτόγονους τύπους δεδομένων, ώστε να μπορείτε να χρησιμοποιήσετε τους τελεστέους "" και "==".

4301351 14
4301351 14

Βήμα 2. Δημιουργήστε ένα αντικείμενο χρόνου σε μορφή μεγάλου αριθμού

Για να μπορέσετε να συγκρίνετε ημερομηνίες, πρέπει να δημιουργήσετε μια τιμή Ακέραιου Μακρού από το αντικείμενο ημερομηνίας που δημιουργήθηκε προηγουμένως. Ευτυχώς, η μέθοδος getTime () θα το κάνει για εσάς.

    long time1 = getTime (ημερομηνία 1); // δηλώστε πρωτόγονο χρόνο1 της ημερομηνίας1 μεγάλο χρονικό διάστημα2 = getTime (ημερομηνία2); // δηλώστε την αρχική ώρα2 τιμή της ημερομηνίας2

4301351 15
4301351 15

Βήμα 3. Εκτελέστε μια σύγκριση μικρότερη από

Χρησιμοποιήστε τον τελεστή λιγότερο από (<) για να συγκρίνετε αυτές τις δύο ακέραιες τιμές. Δεδομένου ότι ο χρόνος1 είναι μικρότερος από τον χρόνο2, θα εμφανιστεί το πρώτο μήνυμα. Η δήλωση else περιλαμβάνεται για να συμπληρώσει τη σύνταξη.

    if (time1 <time2) {System.out.println ("date1 is the date before date2"); // θα εμφανιστεί επειδή time1 <time2} else {System.out.println ("date1 is not a date before date2"); }

4301351 16
4301351 16

Βήμα 4. Εκτελέστε μια σύγκριση μεγαλύτερη

Χρησιμοποιήστε τον τελεστή μεγαλύτερο από (>) για να συγκρίνετε αυτές τις δύο ακέραιες τιμές. Επειδή ο χρόνος1 είναι μεγαλύτερος από τον χρόνο2, θα εμφανιστεί το πρώτο μήνυμα. Η δήλωση else περιλαμβάνεται για να συμπληρώσει τη σύνταξη.

    if (time2> time1) {System.out.println ("date2 is the date after date1"); // θα εμφανιστεί επειδή time2> time1} else {System.out.println ("date2 δεν είναι η ημερομηνία μετά την ημερομηνία1"); }

4301351 17
4301351 17

Βήμα 5. Εκτελέστε μια ίση σύγκριση

Χρησιμοποιήστε τη συνάρτηση τελεστή για να ελέγξετε την ισότητα τιμών (==) για να συγκρίνετε αυτούς τους δύο ακέραιους αριθμούς. Δεδομένου ότι ο χρόνος1 είναι ίσος με τον χρόνο3, θα εμφανιστεί το πρώτο μήνυμα. Εάν η ροή προγράμματος μεταβεί στη δήλωση else, σημαίνει ότι οι δύο φορές δεν έχουν την ίδια τιμή.

    if (time1 == time2) {System.out.println ("και οι δύο ημερομηνίες είναι οι ίδιες"); } else {System.out.println ("Το 1ο δεν είναι το ίδιο με το 2ο"); // θα εμφανιστεί επειδή η ώρα1! = ώρα2}

Συνιστάται: