Si l'objectif d'acquisition est les 3 derniers mois Cette semaine: obtenez la date du lundi et du dimanche de la semaine qui contient la date actuelle Dernières semaines: obtenez les dates pour chaque lundi et dimanche Semaine dernière: obtenez les dates des lundis et dimanches de la semaine qui incluent la date d'il y a 3 mois
Nous avons reçu une indication de Swordone et corrigé la logique (6/25). * Voir les commentaires
public static void main(String[] args) {
//Obtenir la date actuelle
LocalDate now = LocalDate.now();
//Obtenez la date d'il y a 3 mois (modifiez cette date le cas échéant, 3 mois dans cet exemple)
LocalDate targetDate = now.minusMonths(3);
//Obtenez le lundi de la semaine du jour en cours
LocalDate monday = now.with(DayOfWeek.MONDAY);
//Obtenez le dimanche du jour de la semaine en cours
LocalDate sunday = now.with(DayOfWeek.SUNDAY);
int i = 0;
while (!sunday.isBefore(targetDate)) {
System.out.println(monday + " ~ " + sunday + " : " + (i == 0 ? "cette semaine" : i + "Il y a une semaine"));
monday = monday.minusDays(7);
sunday = sunday.minusDays(7);
i++;
}
}
La date actuelle est le 25/06. L'objectif d'acquisition est jusqu'à 3 mois à l'avance. Je pense qu'il peut être utilisé lorsque vous souhaitez spécifier la période des dernières semaines. Modifiez la date à acquérir le cas échéant et utilisez-la.
2019-06-24 ~ 2019-06-30 :cette semaine
2019-06-17 ~ 2019-06-23 :Il ya 1 semaine
2019-06-10 ~ 2019-06-16 :Il y a 2 semaines
2019-06-03 ~ 2019-06-09 :3 semaines plus tôt
2019-05-27 ~ 2019-06-02 :il y a 4 semaines
2019-05-20 ~ 2019-05-26 :Il y a 5 semaines
2019-05-13 ~ 2019-05-19 :Il y a 6 semaines
2019-05-06 ~ 2019-05-12 :Il y a 7 semaines
2019-04-29 ~ 2019-05-05 :Il y a 8 semaines
2019-04-22 ~ 2019-04-28 :Il y a 9 semaines
2019-04-15 ~ 2019-04-21 :Il y a 10 semaines
2019-04-08 ~ 2019-04-14 :Il y a 11 semaines
2019-04-01 ~ 2019-04-07 :Il y a 12 semaines
2019-03-25 ~ 2019-03-31 :Il y a 13 semaines