Je vois que quelqu'un a déjà mentionné Java8 auparavant... mais cette façon d'écrire est un peu gênante... Tout le monde a fondamentalement la même idée...
L'heure de début indiquée doit être modifiée au premier jour du mois en cours
L'heure de fin indiquée doit être modifiée au dernier jour du mois en cours
La clé est de savoir comment changer... Dans Java 8, il existe des API prêtes à l'emploi qui peuvent être appelées... Il n'y a pas besoin d'analyser... C'est bien de devenir le premier jour, mais il y en a beaucoup problèmes jusqu'au Jugement dernier jour...
Le code est le suivant Selon les conditions données, une méthode isBetween est écrite
Une brève explication... aaaa-mm a une nouvelle classe en Java8 pour gérer le format de l'année et du mois. Il s'agit de YearMonth (c'est une classe d'implémentation de TemporalAdjuster selon The with). La méthode de LocalDate (qui est une classe d'implémentation de Temporal) est en fait la méthode with de l'interface Temporal. Cela implique la conception de la nouvelle API temporelle de Java 8. La signature de la méthode with est la suivante
signifie : un objet peut être ajusté en fonction d'un Temporal objet TemporalAdjuster
Donc combiné avec le code écrit ci-dessus, l'idée est la suivante
J'ai pris l'heure actuelle au hasard
ALocalDate
Modifiez A en fonction de ce qui est passé dans
(appelez la méthode with), c'est-à-dire ajustez l'année et le mois de l'heure, et obtenez l'heure BYearMonth
Mettez B selon un ajusteur
(TemporalAdjuster), ajustez le jour de l'heure, et obtenez l'heure finale TemporalAdjusters.firstDayOfMonth
En fait, de nombreux ajustements de temps couramment utilisés ont été encapsulés dans
... C'est également simple, direct et facile à utiliser. Vous pouvez faire attention à cette classe TemporalAdjusters.
Enfin, je fournis quelques relations entre la nouvelle API Java 8 que j'ai simplement connectée auparavant. Suite à ces relations, vous pouvez examiner les classes et les relations spécifiques. Vous constaterez que la nouvelle API temporelle n'est pas seulement facile à utiliser. mais aussi très puissant
Si vous n'utilisez pas Java8 :
Je vois que quelqu'un a déjà mentionné Java8 auparavant... mais cette façon d'écrire est un peu gênante... Tout le monde a fondamentalement la même idée...
L'heure de début indiquée doit être modifiée au premier jour du mois en cours
L'heure de fin indiquée doit être modifiée au dernier jour du mois en cours
La clé est de savoir comment changer... Dans Java 8, il existe des API prêtes à l'emploi qui peuvent être appelées... Il n'y a pas besoin d'analyser... C'est bien de devenir le premier jour, mais il y en a beaucoup problèmes jusqu'au Jugement dernier jour...
Le code est le suivant Selon les conditions données, une méthode isBetween est écrite
Une brève explication...
aaaa-mm a une nouvelle classe en Java8 pour gérer le format de l'année et du mois. Il s'agit de
YearMonth
(c'est une classe d'implémentation deTemporalAdjuster
selon The with). La méthode deLocalDate
(qui est une classe d'implémentation deTemporal
) est en fait la méthode with de l'interfaceTemporal
. Cela implique la conception de la nouvelle API temporelle de Java 8. La signature de la méthode with est la suivantesignifie : un objet peut être ajusté en fonction d'un
Donc combiné avec le code écrit ci-dessus, l'idée est la suivanteTemporal
objetTemporalAdjuster
A
LocalDate
(appelez la méthode with), c'est-à-dire ajustez l'année et le mois de l'heure, et obtenez l'heure B
YearMonth
(
TemporalAdjuster
), ajustez le jour de l'heure, et obtenez l'heure finaleTemporalAdjusters.firstDayOfMonth
... C'est également simple, direct et facile à utiliser. Vous pouvez faire attention à cette classe
Enfin, je fournis quelques relations entre la nouvelle API Java 8 que j'ai simplement connectée auparavant. Suite à ces relations, vous pouvez examiner les classes et les relations spécifiques. Vous constaterez que la nouvelle API temporelle n'est pas seulement facile à utiliser. mais aussi très puissantTemporalAdjusters
.Si vous utilisez Java8 :
Si vous n'utilisez pas Java8 mais utilisez Joda-time :
end doit être converti au dernier jour de ce mois, par exemple
2017-06-30
;, utilisez simplement
, convertissez-le en format standard ou convertissez-le en Date ou en long (la Date est essentiellement longue), puis comparez.yyyy-mm
;yyyy-mm-dd
date.compareTo(start) >= 0 && date.compareTo(end) < 0
S'il existe un format non standard, tel que