package tool;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalendarMaker {
/**
* args[0]に指定したカレンダーを出力する
* @param args args[0]に対象年(yyyy)
*/
public static void main(String[] args) {
String yyyy = args[0];
int year = Integer.parseInt(yyyy);
for (int i = 1; i < 13; i++) {
int month = i;
printCalendar(year, month);
System.out.println("");
System.out.println("");
}
}
/**
* 指定した年月のカレンダーを出力する
* @param year 年
* @param month 月(1〜12)
*/
private static void printCalendar(int year, int month) {
System.out.println(year + "年" + month + "月");
String[] dayOfWeeks = { "日", "月", "火", "水", "木", "金", "土" };
for (int i = 0; i < dayOfWeeks.length; i++) {
System.out.print(dayOfWeeks[i] + " ");
}
System.out.println("");
String space = " ";
int day = 1;
GregorianCalendar c = new GregorianCalendar(year, --month, day);
for (;;) {
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
int date = c.get(Calendar.DATE);
if (date == 1) {
String indent = "";
if (dayOfWeek != Calendar.SUNDAY) {
indent = space.substring(0, (dayOfWeek - 1) * 3);
}
System.out.print(indent);
}
String pad = "";
if (date < 10) {
pad = " ";
}
System.out.print(pad + date + " ");
if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
System.out.println("");
}
c.add(Calendar.DATE, 1);
if (month != c.get(Calendar.MONTH)) {
break;
}
}
System.out.println("");
}
}