Συγκρίνετε ημερομηνίες στην Java

Συγγραφέας: Roger Morrison
Ημερομηνία Δημιουργίας: 24 Σεπτέμβριος 2021
Ημερομηνία Ενημέρωσης: 1 Ιούλιος 2024
Anonim
Java Tech Talk: Τηλεγράφημα bot σε java για 1 ώρα
Βίντεο: Java Tech Talk: Τηλεγράφημα bot σε java για 1 ώρα

Περιεχόμενο

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

Για να πας

Μέθοδος 1 από 4: Χρήση της εντολής "membandingkanTo"

  1. Χρησιμοποιήστε το σύγκρισηTo. Ημερομηνία υλοποιεί το ComparableDate> και έτσι δύο ημερομηνίες μπορούν να συγκριθούν απευθείας μεταξύ τους χρησιμοποιώντας τη μέθοδο σύγκρισης. Εάν οι ημερομηνίες δείχνουν την ίδια στιγμή, η μέθοδος θα επιστρέψει μηδέν. Εάν η ημερομηνία που συγκρίνεται είναι πριν από το όρισμα ημερομηνίας, τότε θα επιστραφεί μια αρνητική τιμή. Εάν η ημερομηνία που συγκρίνεται είναι μεταγενέστερη από αυτήν του ορίσματος ημερομηνίας, τότε θα επιστραφεί μια θετική τιμή. Εάν οι ημερομηνίες είναι ίδιες, θα επιστραφεί ένα μηδέν.
  2. Δημιουργήστε τα αντικείμενα Date. Θα πρέπει να δημιουργήσετε κάθε αντικείμενο ημερομηνίας για να μπορέσετε να ξεκινήσετε τη σύγκριση τους. Ένας τρόπος για να γίνει αυτό είναι να εφαρμόσετε την κλάση SimpleDateFormat. Αυτό σας επιτρέπει να εισάγετε εύκολα ημερομηνίες σε αντικείμενα ημερομηνίας.

      SimpleDateFormat sdf = νέο SimpleDateFormat ("yyyy-MM-dd"); // Για δήλωση τιμών σε νέα αντικείμενα ημερομηνίας.Χρησιμοποιήστε την ίδια μορφή ημερομηνίας κατά τη δημιουργία ημερομηνιών Date date1 = sdf.parse ("1995-02-23"); // Η ημερομηνία1 είναι 23 Φεβρουαρίου 1995 Ημερομηνία date2 = sdf.parse ("2001-10-31"); // Η ημερομηνία2 είναι 31 Οκτωβρίου 2001 Ημερομηνία date3 = sdf.parse ("1995-02-23"); // Η ημερομηνία3 είναι 23 Φεβρουαρίου 1995

  3. Συγκρίνετε τα αντικείμενα ημερομηνίας. Το παρακάτω δείχνει κάθε περίπτωση - λιγότερο από, ίσο και μεγαλύτερο από.

      date1.compareTo (ημερομηνία2); // date1 date2, λιγότερο από 0 date2.compareTo (date1); // date2> date1, επιστρέφει περισσότερο από 0 date1.compareTo (date3); // date1 = date3, επιστρέφει 0

Μέθοδος 2 από 4: Η χρήση των μεθόδων "ισούται, μετά και πριν"

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

      System.out.print (ημερομηνία1.πριν (ημερομηνία2)); // print true System.out.print (date2.before (date2)); // εκτύπωση ψευδής

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

      System.out.print (date2.after (date1)); // print true System.out.print (date1.after (date2)); // εκτύπωση ψευδής

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

      System.out.print (date1.equals (date3)); // print true System.out.print (date1.equals (date2)); // εκτύπωση ψευδής

Μέθοδος 3 από 4: Χρήση της κλάσης ημερολογίου

  1. Χρησιμοποιήστε την τάξη Ημερολόγιο. Η κλάση ημερολογίου έχει επίσης τις μεθόδους σύγκρισης, ισούται με, μετά και πριν, οι οποίες λειτουργούν με τον ίδιο τρόπο όπως περιγράφεται παραπάνω για την τάξη ημερομηνιών. Έτσι, εάν τα δεδομένα ημερομηνίας διατηρούνται σε ένα ημερολόγιο, δεν χρειάζεται να εξαγάγετε το "ημερομηνία", απλώς για να συγκρίνετε δύο ημερομηνίες.
  2. Δημιουργία παρουσίας ημερολογίου. Για να χρησιμοποιήσετε τις μεθόδους Ημερολογίου χρειάζεστε ορισμένες παρουσίες Ημερολογίου. Ευτυχώς, μπορείτε να χρησιμοποιήσετε την ώρα όπως δημιουργείται από τις εμφανίσεις ημερομηνίας.

      Ημερολόγιο cal1 = Calendar.getInstance (); // δηλώνει cal1 Calendar cal2 = Calendar.getInstance (); // δηλώνει cal2 Calendar cal3 = Calendar.getInstance (); // δηλώνει cal3 cal1.setTime (ημερομηνία1); // ισχύει ημερομηνία για cal1 cal2.setTime (ημερομηνία2); cal3.setTime (ημερομηνία3);

  3. Συγκρίνετε τα cal1 και cal2 χρησιμοποιώντας πριν. Ο παρακάτω κώδικας επιστρέφει true επειδή το cal1 είναι παλαιότερο από το cal2.

      System.out.print (cal1.before (cal2)); // εκτύπωση true

  4. Συγκρίνετε cal1 και cal2 χρησιμοποιώντας μετά. Ο παρακάτω κώδικας επιστρέφει false, επειδή το cal1 είναι παλαιότερο από το cal2.

      System.out.print (cal1.after (cal2)); // εκτύπωση ψευδής

  5. Συγκρίνετε cal1 και cal2 χρησιμοποιώντας ίσα. Ο παρακάτω κώδικας δείχνει ένα παράδειγμα αληθινού και ψευδούς. Η συνθήκη εξαρτάται από τη σύγκριση των παρουσιών του Ημερολογίου. Ο παρακάτω κώδικας επιστρέφει "true" και στη συνέχεια "false" στην επόμενη γραμμή.

      System.out.println (cal1.equals (cal3)); // print true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // print false: cal1! = cal2

Μέθοδος 4 από 4: Χρήση της μεθόδου "getTime"

  1. Χρησιμοποιήστε το getTime. Είναι επίσης δυνατή η άμεση σύγκριση δύο χρονικών σημείων, αν και οποιαδήποτε από τις προηγούμενες προσεγγίσεις είναι πιθανό να αποδώσει πιο ευανάγνωστα αποτελέσματα και έτσι προτιμάται. Αυτή είναι μια σύγκριση δύο πρωτόγονων τύπων δεδομένων, οπότε μπορεί να γίνει με "", ">" και "==".
  2. Δημιουργήστε τα "μεγάλα" αντικείμενα χρόνου. Για να μπορέσετε να συγκρίνετε ημερομηνίες, πρέπει να δημιουργήσετε μεγάλους ακέραιους αριθμούς από τα δεδομένα των αντικειμένων ημερομηνίας που δημιουργήθηκαν προηγουμένως. Ευτυχώς, η μέθοδος getTime () θα κάνει το μεγαλύτερο μέρος της δουλειάς για εσάς.

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

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

      εάν (time1 time2) {System.out.println ("ημερομηνία1 είναι νωρίτερα από την ημερομηνία2"); // print γιατί time1 time2} else {System.out.println ("Η ημερομηνία1 είναι μεταγενέστερη ή ίση με την ημερομηνία2"); }

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

      if (time2> time1) {System.out.println ("ημερομηνία2 έρχεται μετά την ημερομηνία1"); // print επειδή time2> time1} else {System.out.println ("Η ημερομηνία2 είναι παλαιότερη από ή ίση με την ημερομηνία1"); }

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

      if (time1 == time2) {System.out.println ("Οι ημερομηνίες είναι ίσες"); } αλλιώς {System.out.println ("Οι ημερομηνίες δεν είναι ίσες"); // εκτύπωση επειδή time1! = time2}