首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

求flex日期计算的方法解决办法

2012-03-23 
求flex日期计算的方法请教flex如何计算2009-01-01 到 2012-01-01这两个日期相差了多少个月?Java code/***

求flex日期计算的方法
请教flex如何计算2009-01-01 到 2012-01-01这两个日期相差了多少个月?

Java code
        /**         * 返回两个字符串日期相差的月份数         * */        public static function obtainIntervalMonths(startYM:String, endYM:String):int        {            if (!startYM || startYM.length != 6 ||                !endYM || endYM.length != 6) {                return 0;                }            var dateFormart:DateFormatter = new DateFormatter();            dateFormart.formatString = "YYYYMM";            var startDate:Date = new Date(Number(startYM.substring(0,4)),Number(startYM.substring(4,6))-1);            var currentYM:String = dateFormart.format(startDate);            var result:Array = [];                        while (currentYM <= endYM) {                result.push(currentYM);                startDate.setMonth(startDate.getMonth()+1,1);                currentYM = dateFormart.format(startDate);            }            return result.length;        }

小弟现在使用的方法,不过不怎么准确,以上两个简单的日期返回居然是-1。。。。请教高手处理

[解决办法]
我觉得考虑的太多了。不需要那么复杂。既然是字符串日期,自己写方法就好了。
我简单写了一个,你看看。
JScript code
var day1:String = "2009-01-01"var day2:String = "2012-01-01"trace(getDay(day1,day2))function getDay(va:String,vb:String):int{    var tempa:Array = va.split("-")    var tempb:Array = vb.split("-")    var year:int = int(tempb[0])-int(tempa[0])-1    var month:int =  int(tempb[1])-int(tempa[1])    return year*12 + month}
[解决办法]
取得两个日期各自的毫秒数然后相减,再换算就可以了

热点排行