Video: RUMUS MENGHITUNG HARI DAN PASARAN DENGAN MICROSOFT EXCEL 2024
Sama seperti Anda tidak dapat menggunakan operator perbandingan built-in di Jawa dengan tanggal, Anda juga mungkin tidak menggunakan operator matematika bawaan. Sebagai gantinya, Anda dapat melakukan penambahan dan pengurangan tanggal menggunakan berbagai metode
plus
dan
minus
, dan Anda dapat menentukan perbedaan antara dua tanggal dengan menggunakan metode
sampai
..
Fakta penting yang harus dipertimbangkan saat melakukan perhitungan tanggal dan waktu adalah objek Date-Time tidak dapat diubah. Itu berarti bahwa begitu Anda membuat objek Date-Time, Anda tidak dapat mengubah nilainya. Saat Anda melakukan perhitungan pada objek Date-Time, hasilnya adalah objek Date-Time baru dengan nilai baru.
Metode
plus
dan
minus
memungkinkan Anda menambahkan berbagai unit tanggal dan waktu ke objek Date-Time. Ada empat varian masing-masing untuk kelas
LocalDate
, yang memungkinkan Anda menambahkan atau mengurangi tahun, bulan, minggu, dan hari ke objek
LocalDate
. Kode berikut mencetak tanggal sekarang, tanggal besok, dan tanggal satu minggu, satu bulan, dan satu tahun dari sekarang:
System. di luar. println ("Today:" + LocalDate sekarang ());
Sistem di luar. println ("Besok:" + LocalDate sekarang () plusDays (1));
Sistem di luar. println ("Minggu depan:" + LocalDate sekarang () plusWeeks (1));
Sistem di luar. println ("Bulan depan:" + LocalDate sekarang () plusMonths (1));
Sistem di luar. println ("Tahun depan:" + LocalDate sekarang (). plusYears (1));
Untuk menentukan perbedaan antara dua tanggal, gunakan metode
sampai
. Ini menghitung perbedaan antara tanggal dan tanggal berlalu sebagai parameter pertama, diukur dalam unit yang ditunjukkan oleh parameter kedua. Misalnya, kode berikut menentukan jumlah hari antara 16 Mei 2014 dan 15 Desember 2014:
LocalDate date1 = LocalDate. parse ("2014-05-16");
LocalDate date2 = LocalDate. parse ("2014-12-15");
Sistem di luar. println (tanggal1 sampai (tanggal 2, ChronoUnit. DAYS));
Beberapa perhitungan tanggal bisa sedikit lebih rumit. Misalnya, pertimbangkan bisnis yang menyiapkan faktur pada tanggal 15 setiap bulannya. Berikut cuplikan kode menampilkan jumlah hari dari tanggal sekarang sampai tanggal faktur berikutnya:
LocalDate today = LocalDate. sekarang();
LocalDate invDate = LocalDate. (hari ini, getYear (),
hari ini getMonthValue (), 15);
jika (hari ini getDayOfMonth ()> 15)
invDate = invDate. plusMonths (1);
hari yang panjangToInvoice = hari ini sampai (invDate,
ChronoUnit. DAYS);
Sistem di luar. println (daysToInvoice
+ "sampai tanggal faktur berikutnya.");
Contoh ini bekerja dengan terlebih dahulu mendapatkan tanggal sekarang, lalu membuat objek
LocalDate
baru yang mewakili tanggal 15 bulan berjalan. Kemudian, jika hari ini bulan lebih besar dari 15, itu menambahkan satu bulan ke tanggal faktur. Dengan kata lain, jika tanggal 16 atau lebih, faktur terjadi pada tanggal 15 bulan berikut, bukan bulan ini. Kemudian menggunakan metode
sampai
untuk menentukan jumlah hari antara tanggal sekarang dan tanggal faktur berikutnya.
ChronoUnit
adalah penghitungan yang mendefinisikan berbagai unit waktu yang dapat digunakan dalam perhitungan tanggal dan waktu. Nilai yang mungkin adalah:
ABAD
HARI
DEKADE
ERAS
SELAMAN
HALF-HARI
JAM
MICROS
MILLENNIA
MILLIS
MENIT
BULAN
NANOS
DETIK
MINGGU
YEARS
Sebagian besar ini cukup jelas, tapi dua di antaranya agak aneh:
-
ERA
menunjukkan apakah Tanggalnya mengacu pada Era Umum (CE, juga dikenal sebagai AD) atau Before Era (BCE, juga dikenal sebagai BC). -
FOREVER
mewakili nilai terbesar yang dapat direpresentasikan sebagai durasi. Sayangnya, Jawa tidak akan membiarkan Anda hidup selamanya. Kode berikut mengeluarkan pengecualian:
ulang tahun LocalDate = LocalDate. parse ("1959-05-16);
ulang tahun = ulang tahun ditambah (1, ChronoUnit. SELAMA);
Perhatikan bahwa
ChronoUni
t ada di java
. waktu. temporal
, jadi pastikan untuk menyertakan pernyataan berikut di bagian atas program yang menggunakan java java impor
ChronoUnit
:
. waktu. sementara. *;