CalenderModel

  • グレゴリオ暦を使用した、月毎のカレンダーのデータを生成・管理するクラスです。
  • 通常は月のカレンダーデータを出すだけですが、祝日リストを作ることで、カレンダーの該当日に祝日を埋め込むことができます。
  • 日本国用にカスタマイズしたCalenderModelJPクラスを同梱。

使い方

	var model:CalenderModel = new CalenderModel();
	var monthCalender:Array = model.getCalender();
	//model.getCalender(1945, 1);で1945年1月のカレンダーをゲット。

で、現在のカレンダーの配列が取得できます。配列の中身はCalenderDateObject?型のオブジェクトが格納されています。

[year = 2011 , month = 1 , date = 1 , day = 6]
[year = 2011 , month = 1 , date = 2 , day = 0]
[year = 2011 , month = 1 , date = 3 , day = 1]
[year = 2011 , month = 1 , date = 4 , day = 2]
[year = 2011 , month = 1 , date = 5 , day = 3]
[year = 2011 , month = 1 , date = 6 , day = 4]
...
(注:読みやすくするために、出力の表示をカスタマイズしてます)

という風に、格納されていますので、あとはCalenderDateObject?のそれぞれのプロパティにアクセスするだけです。


CalenderModel.holidayListプロパティにIHolidayListを実装した祝日リストを設定することで、カレンダーに祝日を埋め込むことができます。詳しくは「jp.melancholy.calendermodel.holidays.lists」内の「HolidayListJP.as」のドキュメントとソースを見てもらえればと思いますが、リストの構築方法としては

_datas.push(new HolidayObject("元日", [new HolidayDateSetter(0, 1, 1)], { type:CalenderUtil.NATIONAL_HOLIDAY }, null, null, 1948, 7, 20));

のような形で、内部の配列オブジェクトに格納することでリストを構築します。

  • 第1引数は祝日の名前
  • 第2引数は祝日の日付。年数は0を指定してください。配列で指定するので、同一の祝日を複数の日付で登録できます。日付は、数値による指定のほか、文字列による「第4金曜日」や「最終水曜日」などの指定もできます。詳しくはHolidayListJP.as内の成人の日の部分をご覧ください。
  • 第3引数は祝日の種類です。祝日として設定されているものはCalenderUtil?.NATIONAL_HOLIDAY、祝日を補佐する目的で制定されている特別な休日はCalenderUtil?.ADDITIONAL_NATIONAL_HOLIDAYで指定、その他必要があれば独自の文字列やキー-バリューを入力してください。
  • 第4引数は適用する年です。nullを設定した場合、第6~第8で指定する年月日から毎年の該当日に祝日を適用します。指定した場合、指定した年にしか適用されません。指定する際には、HolidayDateSetter?型オブジェクトの配列を指定してください。またHolidayDateSetter?型オブジェクト生成の際は、年だけでなく、年月日を指定してください。
  • 第5引数は適用外とする年です。第4を指定した、していないに関わらず、ここに指定された年は適用されなくなります。指定の仕方は第4引数と同じです。
  • 第6~第8引数は、適用開始年月日です。例えば法律施行の瞬間から算出を始めたい場合は施行の年月日を入れる等。
  • 第9~第11引数は、適用終了年月日です。例えば法律廃止の瞬間で算出の範囲を終了したい場合には廃止の年月日を入れる等。

長いですが、新たにリストを作る場合にのみ必要ですので、通常気にしなくていいと思います。


また、日本国用にカスタマイズされたCalenderModelJPもあります。使い方はCalenderModelと同じです。holidayListプロパティにHolidayListJPをデフォルトで格納してるので、祝日が適用されたカレンダーを取得できます。ただし、春分の日・秋分の日に関しては、毎年の閣議決定で日付が正式に決定されるため、2013年以降は算出で求める必要があります。デフォルトではこの機能はOFFにしてあります。詳しくはCalenderModelJPのドキュメント内「isCalcVEDandAED」プロパティを参照してください。

	var model:CalenderModel = new CalenderModelJP();
	var monthCalender:Array = model.getCalender();

格納情報は以下のようになります。

[year = 2011 , month = 1 , date = 1 , day = 6, data = 元日]
[year = 2011 , month = 1 , date = 2 , day = 0]
[year = 2011 , month = 1 , date = 3 , day = 1]
[year = 2011 , month = 1 , date = 4 , day = 2]
[year = 2011 , month = 1 , date = 5 , day = 3]
[year = 2011 , month = 1 , date = 6 , day = 4]
...
[year = 2011 , month = 1 , date = 10 , day = 1, data = 成人の日]

留意事項

  • もし何かバグや間違い等ありましたら、Twitterの@Hiiragi3までご連絡ください。

バージョン

  • 1.0.0

ダウンロード/ソース

ライセンス

  • Licensed under the MIT License

履歴

  • 1.0.0 公開

コミッタ

  • Hiiragi