2009年9月3日木曜日

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

nextday.as
// 次の日の日付を計算する
//
// @param a0 ... 西暦年 (例: 2009 )
// @param a1 ... 月 (1?12)
// @param a2 ... 日 (1?31)
//
// @return a0 ... 西暦年 (例: 2009 )
// @return a1 ... 月 (1?12)
// @return a2 ... 日 (1?31)
//
++a2;
switch (a1) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
if (31 < a2) { ++a1; a2 = 1; }
break;
case 2:
if ((a0 % 4 == 0 && a0 % 100 != 0) || (a0 % 400 == 0)) { // 閏年
if (29 < a2) { ++a1; a2 = 1; }
} else {
if (28 < a2) { ++a1; a2 = 1; }
}
break;
case 4:
case 6:
case 9:
case 11:
if (30 < a2) { ++a1; a2 = 1; }
break;
case 12:
if (31 < a2) { ++a0; a1 = 1; a2 = 1; }
break;
}

0 件のコメント:

コメントを投稿