日历
class Calendar { static function getDate(d:Date):Array { var y = d.getFullYear();// 获得年份 var m = d.getMonth();//获得月份 var w = getFirstDay(y, m);//y年,m月的1号是星期几 var max = getMonthDays(y, m+1);//y 年,m月的天数,系统是从0开始的,所以加1 var arr = format(w, max);//格式化月份 return arr; } static function getFirstDay(y:Number, m:Number):Number { //获得月第一天是星期几 var d:Date = new Date(y, m, 1); return d.getDay(); } static function getMonthDays(y:Number, m:Number):Number { //计算当前月总天数 var days = 0; if (m == 2) { if (y%4 == 0) { if (y%100 == 0) { if (y%1000 == 0) { days = 29; } else { days = 28; } } else { days = 29; } } else { days = 28; } } else { if (m == 4 || m == 6 || m == 9 || m == 11) { days = 30; } else { days = 31; } } return days; } static function format(w, ms):Array { //格式化月份,星期天为0,到第一天是星期几,以null填与,其它累加,最后格式化时以7为模输出就行了。 var dateArr = new Array(); for (var i = 0; i<w; i++) { dateArr.push(null); } for (var i = 0; i<ms; i++) { dateArr.push(i+1); } return dateArr; }}
[[i] 本帖最后由 keys 于 2008-1-24 13:43 编辑 [/i]]
附件
-
Calendars.fla
(57.5 KB)
-
2008-1-24 13:43, 下载次数: 102
-
Calendars.swf
(4.43 KB)
-
2008-1-24 13:43, 下载次数: 99
-
Calendar.as
(1.32 KB)
-
2008-1-24 13:43, 下载次数: 80
-
CalendarChooser.as
(777 Bytes)
-
2008-1-24 13:43, 下载次数: 81