解答例 - 実習課題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 年 月"); } }