目次へ

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

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp