# File Examples/Calendar/TwentyEightMansionsCalendar.rb, line 45
  def print_calendar(year, month)

    # 指定された月の初日の情報をもとに
    # 最終日が何日かと、
    # カレンダ上の初日の表示位置とを求める
    first = Date.new(year, month, 1)
    end_of_month = ((first >> 1) - 1).day
    start = 6 - first.wday

    # 二十八宿 情報を算出する準備を行う
    work_date = AlmanacDateTime.new(year,month,1,12,0,0,Rational(3,8))
    twentyeight_mansions = AlmanacTwentyEightMansions.new

    # コンソールの初期化
    # ※ Curses ライブラリを使用
    Curses::init_screen

    # 年月日情報の編集
    title_string = "             " + year.to_s + "年 " + month.to_s + "月" + "\n"

    # 年月日情報を表示バッファにセット
    Curses::addstr(title_string)

    # 曜日情報の表示バッファにセット
    Curses::addstr(" 日   月   火   水   木   金   土  " + "\n")

    # 日付 および 二十八宿 情報をカレンダ形式に編集し
    # 表示バッファにセット
    WEEK_TABLE.each{|week|
      week_buf = ""
      twentyeight_mansions_buf = ""
      week[start, 7].each{|day|
        if day > end_of_month
          week_buf << "     "
          twentyeight_mansions_buf << "     "
        else
          work_week = sprintf("%3d", day) + "  "
          week_buf << work_week
          work_twentyeight_mansions_string \
            = AlmanacTwentyEightMansions::TWENTY_EIGHT_MANSIONS_NAME_J[
                twentyeight_mansions.get_twenty_eight_mansions_number(work_date)] + "宿 "
          twentyeight_mansions_buf << work_twentyeight_mansions_string
          work_date = work_date + 1
        end
      }
      week_buf = week_buf +"\n"
      Curses::addstr(week_buf)
      twentyeight_mansions_buf = twentyeight_mansions_buf + "\n"
      Curses::addstr(twentyeight_mansions_buf)
    }

    # コンソール画面に表示を実施
    Curses::refresh
    Curses::getch
    Curses::close_screen
  end