java のプルグラムでカレンダーを作成したいです。

例えば 2004年6月と 入力したら 6月分のカレンダーが出てくるのを作る課題です。 javaに詳しい方たちにお願いします。
まだ初心者なのでできればソースにコメントとかあったら嬉しいです。
すみません。こんな質問で。。

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:2009/06/11 22:54:00
  • 終了:2009/06/16 08:17:52

ベストアンサー

id:IlO10l0Il No.2

IlO10l0Il回答回数1757ベストアンサー獲得回数812009/06/15 19:05:04

ポイント35pt

http://okwave.jp/qa4010288.html

こちらを参考にしてみてください。

id:kimu_507

有難うございます。 参考させていただきます。

2009/06/15 20:29:31

その他の回答(1件)

id:QuestR2 No.1

QuestR2回答回数435ベストアンサー獲得回数132009/06/11 22:56:02

id:kimu_507

とりあえず 出るようにしましたが 

質問は 1、一番最初の曜日とちゃんと合わないです。曜日と数字の間Tabで空白を出すのが課題です。

    2、横 、縦という入力するところがあるますが、例えば横3、縦3と入力したら横に3か月分と縦も3か月分のカレンダーが表示したいです。お願いします。

 

2007年5月3_3

日 月 火 水 木 金 土

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29 30 31 

public class Calender {

public static void main(String[] args) throws IOException {

GregorianCalendar cal = new GregorianCalendar();

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

// キーボードから入力された文字列を変数に格納する

System.out.println("年を入力してください。");

String Year = br.readLine();

System.out.println("月を入力してください。");

String Month = br.readLine();

System.out.println("横を入力してください。");

String Width = br.readLine();

System.out.println("縦を入力してください。");

String Height = br.readLine();

int LastDay = 0, WeekCount = 0, Week = 0;

int mt[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

String day[] = { "日", "月", "火", "水", "木", "金", "土" };

// 入力チェック

if (Year.equals("") || Month.equals("") || Width.equals("")

|| Height.equals("")) {

System.out.println("入力してください");

} else {

// 文字列をint変数に格納する

int year = Integer.parseInt(Year);

int month = Integer.parseInt(Month);

int width = Integer.parseInt(Width);

int height = Integer.parseInt(Height);

// 年、月をセットします

cal.set(year, month - 1, 1);

// 月初めの曜日を取得

Week = cal.get(Calendar.DAY_OF_WEEK);

// 年月を出力する

for (int w = 1; w <= width; w++) {

System.out.println(String.valueOf(year) + "年"

+ String.valueOf(month) + "月" + String.valueOf(width)

+ "_" + String.valueOf(height));

// 曜日を出力する

for (int i = 0; i < day.length; i++) {

System.out.print(day[i] + "\t");

}

System.out.print("\n");

// 毎月最後の日付設定

if (month == 1 || month == 3 || month == 5 || month == 7 ||

month == 8 || month == 10 || month == 12) {

LastDay = 31;

} else if (month == 4 || month == 6 || month == 9 ||

month == 11) {

LastDay = 30;

} else if (year % 4 == 0 && month == 2) {

LastDay = 29;

} else if (year % 4 != 0 && month == 2) {

LastDay = 28;

}

// 最後の日付まで繰り返す

for (int i = 1; i <= LastDay;) {

// 1日の曜日と一致しなかった場合

if (i == 1 && (WeekCount < Week)) {

System.out.print("\t");

WeekCount++;

} else {

// 日付出力

System.out.print(String.valueOf(i) + "\t");

i++;

WeekCount++;

}

// 土曜日を超えた場合改行します

if (i != 1 && WeekCount > 7) {

System.out.println("\n");

WeekCount = 1;

}

}

month++;

}

2009/06/12 17:56:42
id:IlO10l0Il No.2

IlO10l0Il回答回数1757ベストアンサー獲得回数812009/06/15 19:05:04ここでベストアンサー

ポイント35pt

http://okwave.jp/qa4010288.html

こちらを参考にしてみてください。

id:kimu_507

有難うございます。 参考させていただきます。

2009/06/15 20:29:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません