Ich muss das Datum angeben, das vor 6 vollständigen Monaten ist. Zum Beispiel:
%Vor%Es sollte in jedem Datum in der Zukunft funktionieren.
Ich dachte an das aktuelle Datum minus 30 * 6 = 180 Tage, aber es ist nicht korrekt.
Es muss genau sein, denn wenn wir zum Beispiel feststellen, dass Jul 2011 gültig ist, werden wir alle Daten für diesen Monat speichern .
Danke.
Verwenden Sie eine Bibliothek wie joda-time für Ihre Zeit und Datum. Ich denke, du könntest das mit:
machenneues LocalDate () . minusMonate (7) . withDayOfMonth (1)
(7 Monate, um irgendwelche Teilmonate abzudecken ... hinterlässt einen Randfall vom ersten des Monats ... aber eh :))
YearMonth
Die in Java eingebaute Klasse java.time.YearMonth
macht diese Aufgabe einfach.
Holen Sie sich den aktuellen Jahr-Monat. Dies erfordert eine Zeitzone, in der zu jedem beliebigen Zeitpunkt das Datum um den Globus nach Zone variiert. Am ersten / letzten Tag des Monats kann der Monat in der ganzen Welt variieren.
%Vor%Wir wissen, dass der aktuelle Monat per Definition unvollständig ist. Also gehe zum vorherigen Monat.
%Vor%Bewegen Sie sich bei Bedarf noch ein halbes Jahr früher.
%Vor% Das YearMonth
-Objekt selbst kann in Ihrem Code nützlich sein. Sie können diese Objekte dieser Klasse an Ihren Code übergeben.
Wenn Sie den ersten Tag eines Monats benötigen, fragen Sie.
%Vor% Nach meinem Verständnis müssen Sie über ein Dienstprogramm verfügen, das bestimmt, ob ein variables Datum 6 Monate vor dem Referenzdatum liegt, das Sie festlegen. Sehen Sie sich mein Code-Snippet für dieses Problem an. Es wird nur von java.util.Calendar
verwendet, Sie müssen nicht einige andere Bibliotheken verwenden.