削除回答でした正しい。なぜそれが取り下げられたのか分かりません。
java.time
質問は、後のJava 8とに組み込まれたjava.timeフレームワークに取って代わられてきた面倒な古い日時のクラスを使用しています。 Oracle Tutorialを参照してください。この機能の多くは、Java 6 & 7(ThreeTen-Backport)にバックポートされ、さらにThreeTenABPのAndroidに適合しています。
現在の日付を取得するには、タイムゾーンが必要です。
ZoneId zoneId = ZoneId.of("America/Montreal");
LocalDate today = LocalDate.now(zoneId);
前の月曜日取得するにはTemporalAdjusters
を使用してください。 DayOfWeek
は、週7日間のそれぞれを表す簡単な方法です。
LocalDate previousOrSameMonday = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
あなたが他の目的のために、あなたの週の最後の日が必要な場合は、あなたは次の行を行うことができます。しかし、質問に記載されているような表示だけでは、これを保存する必要はありませんnextSunday
オブジェクトです。週の開始から常に6日後であることがわかっているので、いつでも即座に計算することができます。
LocalDate nextSunday = previousOrSameMonday.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
これで、メモリの周りに留まるために、クラスのメンバに開始曜日を格納する必要があります。
gestion_date
メソッドで定義されたローカル変数は、各実行の完了時に無駄に蒸発します。 Swingフォームに現在表示されているデータを保存する場所があります。あなたの質問にあなたが言及していないので、その場所がどこにあるのか分かりません。だからここで私は架空の名前
modelBehindMySwingForm
を発明する "モデル"は "私のアプリのビジネスデータ"を意味します。
modelBehindMySwingForm.weekStart = previousOrSameMonday;
加算ボタンまたは減算ボタンをクリックするたびに、そのメンバー変数を1週間増分します。
modelBehindMySwingForm.weekStart = modelBehindMySwingForm.weekStart.plusWeeks(1); // Or minusWeeks
そしてLocalDate
オブジェクトの値を表す文字列でJLabelのウィジェットを更新します。 toString
に電話をかけて、ISO 8601の形式の日付を取得することができます。 java.utのローカライズをDateTimeFormatter
で行う方が良いでしょう。 modelBehindMySwingForm
などのどこかにフォーマッタオブジェクトを保存してください。再作成する意味はありません。
Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT);
formatter = formatter.withLocale(locale);
上で見たようmodelBehindMySwingForm.weekStart
をインクリメントした後、あなたのJLabelオブジェクトに表示するための文字列を生成するフォーマッタを使用しています。
String start = modelBehindMySwingForm.weekStart.format(modelBehindMySwingForm.formatter); // Monday
String stop = modelBehindMySwingForm.weekStart.plusDays(6).format(modelBehindMySwingForm.formatter); // Following Sunday.
((modelBehindMySwingForm))とは何ですか? – AnouarLouardighi
Swingフォームに現在表示されているデータを保存する場所があります。私はあなたの質問に言及していないので、それがどこにあるのかわかりません。だから、私は架空の名前 'modelBehindMySwingForm'を発明しました。ここで、"モデル "は"私のアプリのビジネスデータ "を意味します。 –
あなたのコードで自分のコードを読むのに問題が見つかりました – AnouarLouardighi