Flex的日期增加計算

 

  1.  /** 
  2.  
  3.  * 時間計算 
  4.  * @param   
  5.  *      datepart    時間增加的形式 
  6.  * @param   
  7.  *      number      時間增加的數量 
  8.  * @param   
  9.  *      date        預增加的時間 
  10.  * @return  
  11.  *      _returnDate 增加後的時間 
  12.  */ 
  13. private function dateAdd(datepart:String = "", number:Number = 0, date:Date = null):Date  
  14.     if (date == null)  
  15.     { 
  16.         date = new Date(); 
  17.     } 
  18.      
  19.     var _returnDate:Date = new Date(date.time);; 
  20.     var _type = datepart.toLowerCase(); 
  21.     switch (_type) 
  22.     { 
  23.         case "fullyear"
  24.         case "month"
  25.         case "date"
  26.         case "hours"
  27.         case "minutes"
  28.         case "seconds"
  29.         case "milliseconds"
  30.             _returnDate[_type] += number; 
  31.             break; 
  32.         default
  33.             break; 
  34.     } 
  35.     return _returnDate; 
  36.   
  37. /** 
  38.  * 日期比較(按天比較) 
  39.  * 
  40.  *  @param date1 
  41.  *  @param date2 
  42.  *  
  43.  *  @return 
  44.  *  如果第一個參數的時間比第二個大,返回1,小返回-1,相等返回0 
  45.  * */ 
  46. private function dateCompare(date1:Date, date2:Date):int 
  47.     if(date1.fullYear > date2.fullYear) 
  48.     { 
  49.         return 1; 
  50.     } 
  51.     else if(date1.fullYear < date2.fullYear) 
  52.     { 
  53.         return -1; 
  54.     } 
  55.      
  56.     if(date1.month > date2.month
  57.     { 
  58.         return 1; 
  59.     } 
  60.     else if(date1.month < date2.month
  61.     { 
  62.         return -1; 
  63.     } 
  64.      
  65.     if(date1.date > date2.date
  66.     { 
  67.         return 1; 
  68.     } 
  69.     else if(date1.date < date2.date
  70.     { 
  71.         return -1; 
  72.     } 
  73.      
  74.     return 0;       //相等 
  75.   
  76. /** 
  77.  * 增加秒數 
  78.  *  
  79.  *  @param data 
  80.  *  @param count 
  81.  *  
  82.  *  @return 
  83.  *      00:00:00形式字符串 
  84.  */ 
  85. private function secondsAdd(date:Datecount:int):String 
  86.     var _newDate:Date = dateAdd("seconds",count,date); 
  87.      
  88.     //取整 
  89.     var _h:int = _newDate.getHours()>>0; 
  90.     var _min:int = _newDate.getMinutes()>>0; 
  91.     var _s:int = _newDate.getSeconds()>>0; 
  92.      
  93.     //補0 
  94.     var _hh:String = _h>9?String(_h):("0"+_h); 
  95.     var _minMin:String = _min>9?String(_min):("0"+_min); 
  96.     var _ss:String = _s>9?String(_s):("0"+_s); 
  97.      
  98.     return _hh+":"+_minMin+":"+_ss; 
  99.   
  100. /** 
  101.  * 兩個日期之間相差的分鐘數 
  102.  *  
  103.  *  @param  
  104.  *  dataStr         2012-01-02 04:33:10 
  105.  *  @param  
  106.  *  nextDataStr     2012-01-02 15:35:10 
  107.  *   
  108.  *  @return  _count 數據的個數 
  109.  */ 
  110. private function getCount(dataStr:String, nextDataStr:String):int 
  111.     //正則表達式,將時間數字存入數組。 
  112.     var _pattern:RegExp = /-|:| /; 
  113.     var _timeArr:Array = dataStr.split(_pattern); 
  114.     var _nextTimeArr:Array = nextDataStr.split(_pattern); 
  115.      
  116.     var _date:Date = new Date(_timeArr[0],_timeArr[1],_timeArr[2],_timeArr[3],_timeArr[4],_timeArr[5]); 
  117.     var _nextDate:Date = new Date(_nextTimeArr[0],_nextTimeArr[1],_nextTimeArr[2],_nextTimeArr[3],_nextTimeArr[4],_nextTimeArr[5]); 
  118.      
  119.     var _count:int = (((Date.UTC(_nextTimeArr[0],_nextTimeArr[1],_nextTimeArr[2],_nextTimeArr[3],_nextTimeArr[4],_nextTimeArr[5])-Date.UTC(_timeArr[0],_timeArr[1],_timeArr[2],_timeArr[3],_timeArr[4],_timeArr[5]))/1000/60)+0.5)>>0; 
  120.   
  121.     return _count; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章