年の正しい週に問題があります。DD.MM.YYYY の形式で日付を入力する JTextField があります。
private void buttonAddCulturalActionActionPerformed(java.awt.event.ActionEvent evt) {
String date = textfieldDateOfEvent.getText();
if (!isCorrectFormatDate(date)) {
textareaExtract.append("Wrong date format!\n");
return;
}
int day = Integer.parseInt(date.substring(0, 2));
int month = Integer.parseInt(date.substring(3, 5));
int year = Integer.parseInt(date.substring(6, 10));
GregorianCalendar enteredDate = new GregorianCalendar(year, month, day);
String actionName = textfieldActionName.getText();
String placeActionName = textfieldPlaceActionName.getText();
int startHourAction = Integer.parseInt(textfieldStartHourAction.getText());
if (isAllEntered(actionName, enteredDate, placeActionName, startHourAction)) {
CulturalAction newAction = new CulturalAction(actionName, enteredDate,
placeActionName, startHourAction);
// culturalActions is priority queue
culturalActions.add(newAction);
extractAction(newAction);
} else {
textareaExtract.append("You need entered all parameters!\n");
}
}
ここで、カルチャ アクションを (コンストラクターで) 設定します。
public CulturalAction(String nameAction, GregorianCalendar dateAction, String placeAction, int startHourAction) {
this.nameAction = nameAction;
this.placeAction = placeAction;
this.startHourAction = startHourAction;
// I have private attribute numberOfWeek in class CulturalAction
cisloTydne = dateAction.get(GregorianCalendar.WEEK_OF_YEAR);
}
日付 10.10.2013 を入力すると、週番号 45 が返されますが、40 は適切です。私はチェコ共和国から来ました。
アドバイスありがとうございます!