Βίντεο: Privacy, Security, Society - Computer Science for Business Leaders 2016 2024
Ακριβώς όπως δεν μπορείτε να χρησιμοποιήσετε τους ενσωματωμένους χειριστές σύγκρισης της Java με ημερομηνίες, μπορείτε επίσης να μην χρησιμοποιήσετε ενσωματωμένους μαθηματικούς χειριστές. Αντ 'αυτού, μπορείτε να εκτελέσετε προσθήκες και αφαιρέσεις σε ημερομηνίες χρησιμοποιώντας τις διάφορες μεθόδους
συν
και
μείον
και μπορείτε να προσδιορίσετε τη διαφορά μεταξύ δύο ημερομηνιών χρησιμοποιώντας τη μέθοδο
μέχρι
.
Ένα σημαντικό γεγονός που πρέπει να λάβετε υπόψη όταν κάνετε τους υπολογισμούς ημερομηνίας και ώρας είναι ότι τα αντικείμενα ημερομηνίας και ώρας είναι αμετάβλητα. Αυτό σημαίνει ότι μόλις δημιουργήσετε ένα αντικείμενο Date-Time, δεν μπορείτε να αλλάξετε την αξία του. Όταν πραγματοποιείτε έναν υπολογισμό σε ένα αντικείμενο Date-Time, το αποτέλεσμα είναι ένα νέο αντικείμενο Date-Time με μια νέα τιμή.
Οι μέθοδοι
συν
και
μείον
σας επιτρέπουν να προσθέσετε διάφορες μονάδες ημερομηνίας και ώρας σε ένα αντικείμενο Date-Time. Υπάρχουν τέσσερις παραλλαγές για την κατηγορία
LocalDate
, επιτρέποντάς σας να προσθέσετε ή να αφαιρέσετε χρόνια, μήνες, εβδομάδες και ημέρες σε ένα αντικείμενο
LocalDate
. Ο παρακάτω κώδικας εκτυπώνει την τρέχουσα ημερομηνία, την ημερομηνία του αύριο και την ημερομηνία μία εβδομάδα, ένα μήνα και ένα έτος από τώρα:
Σύστημα. έξω. println ("Σήμερα:" + LocalDate τώρα ());
Σύστημα. έξω. println ("Αύριο:" + Τοπική ημερομηνία τώρα) () plusDays (1));
Σύστημα. έξω. println ("Επόμενη εβδομάδα:" + Τοπική ημερομηνία τώρα () plusWeeks (1));
Σύστημα. έξω. println ("Επόμενος μήνας:" + LocalDate τώρα () plusMonths (1));
Σύστημα. έξω. println ("Το επόμενο έτος:" + Τοπική ημερομηνία τώρα () plusYears (1));
Για να προσδιορίσετε τη διαφορά μεταξύ δύο ημερομηνιών, χρησιμοποιήστε τη μέθοδο
έως
. Υπολογίζει τη διαφορά μεταξύ μιας ημερομηνίας και της ημερομηνίας που πέρασε ως η πρώτη παράμετρος, η οποία μετράται στις μονάδες που υποδεικνύονται από τη δεύτερη παράμετρο. Για παράδειγμα, ο παρακάτω κωδικός καθορίζει τον αριθμό των ημερών μεταξύ 16 Μαΐου 2014 και 15 Δεκεμβρίου 2014:
Ημερομηνία Τοπικής Ημερομηνίας1 = Τοπική Ημερομηνία. ανάλυση ("2014-05-16");
Τοπική ημερομηνία2. ανάλυση ("2014-12-15").
Σύστημα. έξω. println (ημερομηνία1 έως (ημερομηνία2, ChronoUnit.
Μερικοί υπολογισμοί ημερομηνίας μπορεί να είναι λίγο πιο περίπλοκοι. Για παράδειγμα, σκεφτείτε μια επιχείρηση που προετοιμάζει τιμολόγια την 15η κάθε μήνα. Το ακόλουθο απόσπασμα κώδικα εμφανίζει τον αριθμό ημερών από την τρέχουσα ημερομηνία μέχρι την επόμενη ημερομηνία τιμολόγησης:
LocalDate today = LocalDate. τώρα();
LocalDate invDate = LocalDate. (σήμερα, getYear (),
σήμερα getMonthValue (), 15);
αν (σήμερα. GetDayOfMonth ()> 15)
invDate = invDate. plusMonths (1);
μακρές ημέρεςToInvoice = σήμερα. μέχρι (invDate,
ChronoUnit. DAYS);
Σύστημα. έξω. println (daysToInvoice
+ "μέχρι την επόμενη ημερομηνία τιμολόγησης.").
Αυτό το παράδειγμα λειτουργεί με την πρώτη λήψη της τρέχουσας ημερομηνίας και στη συνέχεια δημιουργώντας ένα νέο αντικείμενο
LocalDate
που αντιπροσωπεύει το 15ο του τρέχοντος μήνα. Στη συνέχεια, εάν η τρέχουσα ημέρα του μήνα είναι μεγαλύτερη από 15, προσθέτει ένα μήνα στην ημερομηνία τιμολόγησης. Με άλλα λόγια, αν είναι το 16ο ή αργότερα, η τιμολόγηση πραγματοποιείται στο 15ο μετά από μήνα, όχι σε αυτόν τον μήνα. Στη συνέχεια, χρησιμοποιεί τη μέθοδο
μέχρι
για να καθορίσει τον αριθμό ημερών μεταξύ της τρέχουσας ημερομηνίας και της επόμενης ημερομηνίας τιμολόγησης.
Το ChronoUnit
είναι μια απαρίθμηση που καθορίζει τις διάφορες μονάδες χρόνου που μπορούν να χρησιμοποιηθούν σε υπολογισμούς ημερομηνίας και ώρας. Οι πιθανές τιμές είναι:
ΑΙΩΝ
ΗΜΕΡΕΣ
ΔΕΚΑΔΕΣ
ERAS
FOREVER
HALF-DAYS
HOURS
MICROS
MILLENNIA <
ΕΒΔΟΜΑΔΙΑ
-
-
FOREVER
αντιπροσωπεύει τη μεγαλύτερη τιμή που μπορεί να αναπαρασταθεί ως διάρκεια. Δυστυχώς, η Java δεν θα σας αφήσει να ζήσετε για πάντα. Ο ακόλουθος κώδικας κάνει μια εξαίρεση:
Birthday LocalDate = LocalDate. parse ("1959-05-16);
γενέθλια = γενέθλια. συν (1, ChronoUnit, FOREVER).
Σημειώστε ότι
ChronoUni
t βρίσκεται στη
. χρόνος.
: