0
なぜエラーが出る?
題名のとおりなのですが・・・配列のところでエラーがでます。
エラー文章は以下のとおりです。
変数宣言が間違っているのでしょうか?
どなたか詳しく教えてください・・・。
D:\JAVA>javac kadai2.java
kadai2.java:56: シンボルを見つけられません。
シンボル: 変数 month_space
場所 : kadai2 の クラス
ScondSpace = month_space[5];
^
kadai2.java:73: シンボルを見つけられません。
シンボル: 変数 days
場所 : kadai2 の クラス
if (l <= days[MONTH]) {
^
エラー 2 個
↓ソース
import java.io.*;
public class kadai2 {
public static void main(String[] args) throws Exception {
/************************************************************************/
/* 年月の取得 */
/************************************************************************/
System.out.println("何年のカレンダーを表示しますか?数字だけ入力して下さい。");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 1);
try {
String line = reader.readLine();
int YEAR = Integer.parseInt(line);
System.out.println("何月のカレンダーを表示しますか?数字だけ入力して下さい。");
line = reader.readLine();
int month = Integer.parseInt(line);
int MONTH = month - 1;
/************************************************************************/
/* スペースの計算 */
/************************************************************************/
int space = 0;
int FirstSpace = 0;
int ScondSpace = 0;
int Z = YEAR % 4;
if (Z == 0) {
/* うるう年 */
int[] days = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int[] month_space = {0, 3, 4, 0, 2, 5, 6, 3, 6, 1, 4, 6};
} else {
/* 普通の年 */
int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int[] month_space = {0, 3, 3, 6, 1, 4, 5, 2, 5, 0, 3, 5};
}
if (YEAR >= 2001) {
int X = YEAR - 2001;
int Y = (X / 4) * 2 + X;
if (X >= 4) {
Y = Y - (X / 4);
}
FirstSpace = (Y % 7 + 1) % 7;
} else {
int X = 2001 - YEAR;
int Y = (X + 3) / 4 * 2 + X;
if (X + 3 >= 4) {
X = X - (X + 3) / 4;
}
FirstSpace = 7 - (Y % 7 - 1) % 7;
}
ScondSpace = month_space[MONTH];
space = FirstSpace + ScondSpace;
/************************************************************************/
/* カレンダーの表示 */
/************************************************************************/
System.out.println("[" + YEAR + "年 "+ MONTH +"月]のカレンダーを表示します。");
int k = space;
int l = 1;
for (int i = 0; i < 5; i++ ) {
for (int j = 0; j < 7; j++) {
if (k > 0) {
System.out.println(" *" + "\t");
k = k--;
} else {
if (l <= days[MONTH]) {
System.out.println(" " + l + "\t");
l = l++;
} else {
System.out.println(" *" + "\t");
}
}
}
}
/************************************************************************/
/* エラー時の対応 */
/************************************************************************/
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("入力が正しくありません。");
}
}
}