2009年9月3日木曜日

Flash Lite 1.1でカレンダー計算:曜日を求める

weekday.as
// 日付から曜日を求める
//
// @param a0 ... 西暦年 (例: 2009)
// @param a1 ... 月 (1?12)
// @param a2 ... 日 (1?31)
//
// @return r0 ... 0?6 {0:日曜, 1:月曜, ... , 6:土曜}
//
if (2 >= a1) { // 1月と2月は前年の13月と14月と見なす
--a0;
a1 += 12;
}
// Zellerの公式の変形式
r0 = (a0+int(a0/4)-int(a0/100)+int(a0/400)+int((13*a1+8)/5)+a2)%7;
if (12 < a1) { // 13月と14月を元に戻す
++a0;
a1 -= 12;
}

0 件のコメント:

コメントを投稿