/*日期转YYYYMMDD*/ formDate.fullYear + "" + (formDate.month < 10 ? ("0" + formDate.month) : formDate.month) + "" + (formDate.day < 10 ? ("0" + formDate.day) : formDate.day), < br data - filtered = "filtered" > < br data - filtered = "filtered" > < br data - filtered = "filtered" > /** * 虽然名字为fromFormatDayStr和toFormatDayStr, 单两个参数所代表的开始和结束年份没有先后顺序;如: * SelfDateUtil.manyDayNum("20081230", "20110317")与SelfDateUtil.manyDayNum("20110317", "20081230")等效。 * */ private function manyDayNum(fromFormatDayStr: String, toFormatDayStr: String): Number { var manyAllDayNum: Number = 0; //间隔的天数 var _fromYear: int = int(fromFormatDayStr.substr(0, 4)); var _toYear: int = int(toFormatDayStr.substr(0, 4)); if (_toYear == _fromYear) { //同一年 manyAllDayNum = Number(alreadyOverDay(toFormatDayStr)[0]) - Number(alreadyOverDay(fromFormatDayStr)[0]); } else if (Math.abs(_toYear - _fromYear) == 1) { //相差一年 if (_toYear > _fromYear) { manyAllDayNum = Number(alreadyOverDay(fromFormatDayStr)[1]) + Number(alreadyOverDay(toFormatDayStr)[0]); } else { manyAllDayNum = Number(alreadyOverDay(toFormatDayStr)[1]) + Number(alreadyOverDay(fromFormatDayStr)[0]); } } else { //相差两年或者两年以上 var mangYearNum: Number = Math.abs(Number(_toYear - _fromYear)); //中间间隔的年份 if (_toYear > _fromYear) { manyAllDayNum = Number(alreadyOverDay(fromFormatDayStr)[1]) + Number(alreadyOverDay(toFormatDayStr)[0]); for (var i: int = 1; i < mangYearNum; i++) { if (isRunYear(String(_fromYear + i))) { //是闰年 manyAllDayNum += 366; } else { //不是闰年 manyAllDayNum += 365; } } } else { manyAllDayNum = Number(alreadyOverDay(toFormatDayStr)[1]) + Number(alreadyOverDay(fromFormatDayStr)[0]); for (var j: int = 1; j < mangYearNum; j++) { if (isRunYear(String(_toYear + j))) { //是闰年 manyAllDayNum += 366; } else { //不是闰年 manyAllDayNum += 365; } } } } return manyAllDayNum; } /**指定的一年之内已经过了多少天了(算上当天), *dayStr标准格式为YYYYMMDD,例如:20100816 *要保证dayStr参数的格式和实际含义正确,如不能出现20100229 *[0]表示已经过了多少天,[1]表示还剩下多少天 */ private function alreadyOverDay(dayFormatStr: String): Array { var _tempArr: Array = new Array(); var alreadyDayNum: int = 0; var _year: int = int(dayFormatStr.substr(0, 4)); var _month: int = int(dayFormatStr.substr(4, 2)); var _day: int = int(dayFormatStr.substr(6, 2)); if (_month == 1) { alreadyDayNum = _day; } else if (_month == 3) { alreadyDayNum = 31 + _day; } else if (_month == 4) { alreadyDayNum = 62 + _day; } else if (_month == 5) { alreadyDayNum = 92 + _day; } else if (_month == 6) { alreadyDayNum = 123 + _day; } else if (_month == 7) { alreadyDayNum = 153 + _day; } else if (_month == 8) { alreadyDayNum = 184 + _day; } else if (_month == 9) { alreadyDayNum = 215 + _day; } else if (_month == 10) { alreadyDayNum = 245 + _day; } else if (_month == 11) { alreadyDayNum = 276 + _day; } else if (_month == 12) { alreadyDayNum = 306 + _day; } if (isRunYear(dayFormatStr)) { //是闰年 if (_month == 2) { alreadyDayNum = 31 + _day; } else if (_month == 1) { } else { alreadyDayNum += 29; } _tempArr[0] = alreadyDayNum; //已经过的天数(算上今天) _tempArr[1] = 366 - alreadyDayNum; //还剩多少天没有过 } else { //不是闰年 if (_month == 2) { alreadyDayNum = 31 + _day; } else if (_month == 1) { } else { alreadyDayNum += 28; } _tempArr[0] = alreadyDayNum; //已经过的天数(算上今天) _tempArr[1] = 365 - alreadyDayNum; //还剩多少天没有过 } return _tempArr; } /*指定的一年中过了多少天了,dayStr标准格式为YYYYMMDD,例如:20100816*/ private function isRunYear(dayStr: String): Boolean { var _year: Number = Number(dayStr.substr(0, 4)); if ((_year % 4 == 0 && _year % 100 != 0) || _year % 400 == 0) { return true; } else { return false; } }
出处:https://www.cnblogs.com/diulela/p/3718454.html
标签:As3,int,天数,Number,month,日期,alreadyDayNum,else,day From: https://www.cnblogs.com/dt1991/p/16981310.html