Saya nampak seseorang telah pun menyebut Java8 sebelum ini...tetapi cara penulisan ini agak janggal...Semua orang pada dasarnya mempunyai idea yang sama...
Masa mula yang diberikan hendaklah ditukar kepada hari pertama bulan semasa
Waktu tamat yang diberikan hendaklah ditukar kepada hari terakhir bulan semasa
Kuncinya ialah bagaimana untuk menukar... Dalam Java 8, terdapat API siap pakai yang boleh dipanggil... Tidak perlu menghurai... Tidak mengapa untuk menjadi hari pertama, tetapi ada banyak masalah untuk menjadi Penghakiman hari terakhir...
Kod adalah seperti berikut mengikut syarat yang diberikan, kaedah isBetween ditulis
Penjelasan ringkas... yyyy-mm mempunyai kelas baharu dalam Java8 untuk mengendalikan format tahun dan bulan Ini ialah YearMonth (ia adalah kelas pelaksanaan TemporalAdjuster). kaedah LocalDate (yang merupakan kelas pelaksanaan Temporal) sebenarnya adalah kaedah dengan antara muka Temporal Ini melibatkan reka bentuk API masa baharu Java 8. Tandatangan kaedah dengan adalah seperti berikut
bermaksud: objek boleh dilaraskan mengikut objek TemporalTemporalAdjuster
Jadi digabungkan dengan kod yang ditulis di atas, ideanya adalah seperti berikut
Saya mengambil masa semasa secara rawak
ALocalDate
Ubah suai A mengikut yang diluluskan dalam
(panggil kaedah dengan), iaitu, laraskan tahun dan bulan masa, dan dapatkan masa BYearMonth
Letakkan B mengikut pelaras
(TemporalAdjuster), laraskan hari dalam masa dan dapatkan masa terakhir TemporalAdjusters.firstDayOfMonth
Malah, banyak pelarasan masa yang biasa digunakan telah dirangkumkan dalam
... Ia juga mudah, mudah dan mudah digunakan Anda boleh memberi perhatian kepada kelas ini TemporalAdjusters
Akhir sekali, saya menyediakan beberapa perhubungan antara API masa baharu Java 8 yang saya sambungkan sebelum ini, anda boleh melihat kelas dan perhubungan tertentu Anda akan mendapati bahawa API masa baharu bukan sahaja mudah digunakan tetapi juga sangat berkuasa
Jika anda tidak menggunakan Java8:
Saya nampak seseorang telah pun menyebut Java8 sebelum ini...tetapi cara penulisan ini agak janggal...Semua orang pada dasarnya mempunyai idea yang sama...
Masa mula yang diberikan hendaklah ditukar kepada hari pertama bulan semasa
Waktu tamat yang diberikan hendaklah ditukar kepada hari terakhir bulan semasa
Kuncinya ialah bagaimana untuk menukar... Dalam Java 8, terdapat API siap pakai yang boleh dipanggil... Tidak perlu menghurai... Tidak mengapa untuk menjadi hari pertama, tetapi ada banyak masalah untuk menjadi Penghakiman hari terakhir...
Kod adalah seperti berikut mengikut syarat yang diberikan, kaedah isBetween ditulis
Penjelasan ringkas...
yyyy-mm mempunyai kelas baharu dalam Java8 untuk mengendalikan format tahun dan bulan Ini ialah
YearMonth
(ia adalah kelas pelaksanaanTemporalAdjuster
). kaedahLocalDate
(yang merupakan kelas pelaksanaanTemporal
) sebenarnya adalah kaedah dengan antara mukaTemporal
Ini melibatkan reka bentuk API masa baharu Java 8. Tandatangan kaedah dengan adalah seperti berikutbermaksud: objek boleh dilaraskan mengikut objek
Jadi digabungkan dengan kod yang ditulis di atas, ideanya adalah seperti berikutTemporal
TemporalAdjuster
A
LocalDate
(panggil kaedah dengan), iaitu, laraskan tahun dan bulan masa, dan dapatkan masa B
YearMonth
(
TemporalAdjuster
), laraskan hari dalam masa dan dapatkan masa terakhirTemporalAdjusters.firstDayOfMonth
... Ia juga mudah, mudah dan mudah digunakan Anda boleh memberi perhatian kepada kelas ini
Akhir sekali, saya menyediakan beberapa perhubungan antara API masa baharu Java 8 yang saya sambungkan sebelum ini, anda boleh melihat kelas dan perhubungan tertentu Anda akan mendapati bahawa API masa baharu bukan sahaja mudah digunakan tetapi juga sangat berkuasaTemporalAdjusters
Jika anda menggunakan Java8:
Jika anda tidak menggunakan Java8 tetapi menggunakan Joda-time:
akhir hendaklah ditukar kepada hari terakhir bulan ini, contohnya
2017-06-30
;, maka hanya gunakan
, sama ada tukarkannya kepada format standard atau tukarkannya kepada Tarikh atau panjang (Tarikh pada dasarnya panjang), dan kemudian bandingkan.yyyy-mm
;yyyy-mm-dd
date.compareTo(start) >= 0 && date.compareTo(end) < 0
Jika terdapat format bukan standard, seperti