解答例 - 実習課題1 - 8.日時とその表現/タイムゾーン
(実習課題1)
プログラム引数で指定した年月のカレンダーを表示するコンソールプログラムを作成しなさい。
解答例
package com.techscore.utility.chapter8.exercise1;
import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* CalendarExample.java
* TECHSCORE Javaユーティリティ8章 実習課題1
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
public class CalendarExample {
public static void main(String[] args) {
if (args.length < 2) {
printUsage();
return;
}
int year = -1;
int month = -1;
try {
year = Integer.parseInt(args[0]);
month = Integer.parseInt(args[1]) - 1;
} catch (NumberFormatException e) {
printUsage();
return;
}
Calendar calendar = new GregorianCalendar(year, month, 1);
int week = calendar.get(Calendar.WEEK_OF_MONTH);
System.out.println(
calendar.get(Calendar.YEAR)
+ "年 "
+ (calendar.get(Calendar.MONTH) + 1)
+ "月");
System.out.println("\n日 月 火 水 木 金 土\n");
for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) {
System.out.print(" ");
}
while (month == calendar.get(Calendar.MONTH)) {
if (calendar.get(Calendar.WEEK_OF_MONTH) != week) {
week = calendar.get(Calendar.WEEK_OF_MONTH);
System.out.println();
}
System.out.print(
new DecimalFormat("00").format(calendar.get(Calendar.DATE))
+ " ");
calendar.add(Calendar.DATE, 1);
}
}
private static void printUsage() {
System.out.println("使い方:");
System.out.println(
" java com.techscore.utility.chapter8.exercise1.CalendarExample 年 月");
}
}

