2010-08-12 85 views

回答

7

使用Date对象,这一天设置为0,getDate将返回的最后一天,这也是天算一个月;你还要给你想要检查的年份,因为你知道二月可以有29天。

function getDayCount(year:int, month:int):int{ 
var d:Date=new Date(year, month, 0); 
return d.getDate(); 
} 

trace(getDayCount(2012,2)); 
+0

getDayCount():-) – danjarvis 2010-08-12 19:35:56

+0

@clownbaby yes right thanks :) – Patrick 2010-08-12 19:40:45

+3

将day设置为0会返回上个月最后一天的日期对象,而不是当前月份。 – 2012-05-10 15:16:47

0

上面的例子在1月份不起作用! new Date(2011,0,0)returns 12/31/2010
new Date(2011,1,0)returns 01/31/2011
new Date(2011,1,1)returns 02/01/2011

+0

你不应该把日子传递给它。然后它工作。 – 2012-02-21 14:39:04

0

通过指定年份,期望月份+ 1和日期0来创建新的日期对象。这将为所需月份的最后一天创建一个日期对象。然后调用对象的getDate()以返回最后一天。

请注意,基于Flex的月份为零,所以Jan = 0,Feb = 1等等。因此,如果你想知道的最后一天,2月份是2012年,你会做到以下几点:

var FEB:int = 1; 
var date:Date = new Date(2012, FEB + 1, 0); 
var lastDayInFeb:Number = date.getDate(); 

这里是一个more complete example与一对夫妇的非单元测试和返回的最后一个可重复使用的静态方法一个月的一天。

相关问题