标签:blog class code color c int
|
1 |
/*日期转YYYYMMDD*/ |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 |
formDate.fullYear+""+(formDate.month<10?("0"+formDate.month):formDate.month)+""+(formDate.day<10?("0"+formDate.day):formDate.day),<br><br><br>/*** 虽然名字为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;}} |
As3 计算两个日期之间的天数差,布布扣,bubuko.com
标签:blog class code color c int
原文地址:http://www.cnblogs.com/diulela/p/3718454.html