便利なコードパーツ集!

やまろうのプログラミングTips

Java

Javaで1年分のカレンダーを出力するツール

投稿日:

2006/01

新年ということでカレンダーを出力するツールを作ってみました。

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("");
  }
}

実行してみましょう
javac -d . CalendarMaker.java

java tool.CalendarMaker 2006

2006年1月
日 月 火 水 木 金 土
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



2006年12月
日 月 火 水 木 金 土
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

いいでしょ♪ぜひ印刷して壁に貼ってください!!

スポンサーリンク

-Java

Copyright© やまろうのプログラミングTips , 2022 AllRights Reserved Powered by AFFINGER4.