As3 计算两个日期之间的天数差

?





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;

}

}

  

时间: 2024-11-05 16:39:24

As3 计算两个日期之间的天数差的相关文章

计算两个日期之间的天数差C++/java

1--Java 分析:调用java中Calendar类 int days(Date date1,Date date2){ Calendar cal = new Calendar.getInstance(); cal.setTime(date1); int time1 = cal.get(Calendar.DAY_OF_YEAR); cal.setTime(date2); int time2 = cal.get(Calendar.DAY_OF_YEAR); //long days = Math.a

25:计算两个日期之间的天数

25:计算两个日期之间的天数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定两个日期,计算相差的天数.比如2010-1-1和2010-1-3相差2天. 输入 共两行:第一行包含三个整数startYear,startMonth,startDay,分别是起始年.月.日.第二行包含三个整数endYear,endMonth,endDay,分别是结束年.月.日.相邻两个整数之间用单个空格隔开. 年份范围在1~3000.保证日期正确且结束日期不早于起始日期.

C++计算两个日期之间的天数

计算两个日期之间的天数的思路: 首先,判断输入的年份是不是闰年.年份是否相同?月份是否相同?日是否相同? 日月年有三种可能的情况: 同年同月.日数相减就出来了. 同年不同月.计算日期小的月份到年初的天数,计算日期大的月份到年初的天数.再把两个日期向减 不同年.先计算中间相隔几年,计算较小的日期到年底有多少天,再计算较大的日期距年初有多少天,将三个数向加. 代码如下: 1 #include<iostream> 2 #include<CString> 3 #include<cma

计算两个日期之间的天数

//计算两个日期之间的天数 - (NSInteger)calcDaysFromBegin:(NSDate *)beginDate end:(NSDate *)endDate { NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"]; //取两个日期对象的时间间隔: NSTimeInterval time= [endD

JS计算两个日期之间的天数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

java计算两个日期之间相差天数和相隔天数详解

大家看到文章标题"两个日期之间相差天数和相隔天数",是否有疑惑呢!从中文字面理解,"相差"和"相隔"是有区别的,然而就是这些区别害死很多人,却没有发现,在大量新增统计时是差之毫厘谬以千里,我能都发现是因为一个偶然的机会,一个项目运行几年却没有人发现,我在其中还不到一年,一开始写这些这代码的人根本没分清楚什么情况就写了,怪不得统计的数据总是有那么细微的差别,在于日期"相差"和"相隔"有某些特定的情况下是相等的

C#中如何获得两个日期之间的天数差

DateTime d1; DateTime d2; //自己去赋值吧 int days = (d1 - d2).Days;//天数差 label1.Text = "2012-1-1 15:36:05";  label2.Text = "2012-2-1 20:16:35";  DateTime d1 =new DateTime(2012,1,1,15,36,05);  DateTime d2 =new DateTime(2012,2,1,20,16,35);   

8.02 计算两个日期之间的天数

select datediff(ward_hd,allen_hd)from (select hiredate as ward_hdfrom empwhere ename='WARD') x,(select hiredate as allen_hdfrom empwhere ename='ALLEN')y;

8.2 计算两个日期之间的天数

select datediff(ward_hd,allen_hd)from (select hiredate as ward_hdfrom empwhere ename='WARD') x,(select hiredate as allen_hdfrom empwhere ename='ALLEN')y;