`

Flex 常用的时间方法类

    博客分类:
  • Flex
 
阅读更多

package Utils
{
    import mx.formatters.DateFormatter;

    public class DateTimeUtil
    {
        public static const LONG:String="YYYY.MM.DD HH:NN:SS";
        public static const SHORT:String="YYYY.MM.DD";

        private static var _inst:DateTimeUtil;
        private var df:DateFormatter;

        public function DateTimeUtil()
        {
            df=new DateFormatter();
        }

        public static function getInstance():DateTimeUtil
        {
            if (!_inst)
                _inst=new DateTimeUtil();
            return _inst;
        }

        /**
         * 格式化,仅提供长短两种时间格式,默认短时间格式
         * @param date
         * @param type
         * @return
         */
        public function formatDate(date:Object=null, type:String=DateTimeUtil.SHORT):String
        {
            if (!date)
                return "";
            df.formatString=type;
            return df.format(date);
        }

        /**
         * 计算两个时间相差多少天 d1-d2
         * @param d1
         * @param d2
         */
        public function diffDate(d1:Date, d2:Date):int
        {
            var diff:Number=d1.valueOf() - d2.valueOf();
            return int(diff / 24 / 60 / 60 / 1000);
        }

        /**
         * 日期的前一天
         * @param date
         * @return
         */
        public function prevDate(date:Date):Date
        {
            //new Date(
            return addDate(date,-1);
        }
        /**
         * 日期的后一天
         * @param date
         * @return
         */
        public function nextDate(date:Date):Date
        {
            return addDate(date,1);
        }
        /**
         * 日期添加N天,只支持短时间,即年月日
         * @param date
         * @param days
         * @return
         */
        public function addDate(date:Date,days:int):Date
        {
            return new Date(date.fullYear,date.month,date.date+days);
        }
        /**
         * 日期添加N年,只至支持短时间,即年月日
         * @param date
         * @param yeas
         * @return
         */
        public function addYear(date:Date,yeas:int):Date
        {
            return new Date(date.fullYear+yeas,date.month,date.date);
        }
        /**
         * 传一个2009-12-04 16:17:39类似字符串
         * 解析成一个Date对象
         *
         */
        public static function parseString2Date(str:String):Date
        {
            var dd:Number=Date.parse(str);
            var arr:Array=str.split(" ");
            var dateArr:Array=arr[0].toString().split("-");
            var  timeArr:Array=arr[1].toString().split(":");
            var date:Date=new Date(Number(dateArr[0]),Number(dateArr[1]-1),Number(dateArr[2]),Number(timeArr[0]),Number(timeArr[1]),Number(timeArr[2]),0)
            return date;
        }
        /**
         * 解析一个时间对象成为
         * 类似2009-12-04 16:17:39的字符串
         *
         */
        public static function parseDate2String(date:Date):String
        {
            var df:DateFormatter=new DateFormatter();
            df.formatString="YYYY-MM-D JJ:NN:SS";
            var str:String= df.format(date);
            return str;
        }
        public static function getNowDate():Date
        {
            var date:Date=new Date();
            var now:Date=new Date(date.fullYear,date.month,date.date,date.hours,date.minutes,date.seconds,date.milliseconds);
            return now;
        }

 

     //判断t2是否介于t1和t3之间
    public function comperTime(t1:String,t2:String,t3:String):Boolean
    {
        var y:Boolean=false;
        dateFormatter.formatString = "YYYY-MM-DD JJ:NN:SS";
        var str1,str2,str3:String;
          str1=dateFormatter.format(t1);
          str2=dateFormatter.format(t2);
          str3=dateFormatter.format(t3);
          str1=str1.replace(myPattern1,'');
          str2=str2.replace(myPattern1,'');
          str3=str3.replace(myPattern1,'');
          if(int(str1)<=int(str2)&&int(str2)<=int(str3))
          {
          y= true;
          }
          else
          {
          y= false;
          }

            return y;
    }


       //t2-t1剩余的时间
    public function leftTime(t1:String,t2:String):Number
    {
        var leftTime:Number;
        dateFormatter.formatString = "YYYY-MM-DD JJ:NN:SS";
        var str1,str2:String;
          str1=dateFormatter.format(t1);
          str2=dateFormatter.format(t2);
          str1=str1.replace(myPattern1,'');
          str2=str2.replace(myPattern1,'');
          var t:Number=int(str2)-int(str1);
              var time:String=t.toString();
              if(time.length==6)
              {
                  leftTime=int(time.substring(0,2))*3600+int(time.substring(2,4))*60+int(time.substring(5));
              }
              else if(time.length==5)
              {
                  leftTime=int(time.substring(0,1))*3600+int(time.substring(1,3))*60+int(time.substring(4));
              }
              else if(time.length==4)
              {
                  leftTime=int(time.substring(0,2))*60+int(time.substring(2,4));
              }
              else if(time.length==3)
              {
                  leftTime=int(time.substring(0,1))*60+int(time.substring(1,3));
              }
              else
              {
                leftTime=t;
              }
          return leftTime;
    }


    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics