Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25647
  • 博文数量: 18
  • 博客积分: 247
  • 博客等级: 二等列兵
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-10 11:28
文章分类

全部博文(18)

文章存档

2012年(18)

我的朋友
最近访客

分类:

2012-12-10 11:35:43

原文地址:flex中比较两个Date 作者:chendong292


当年啥都不懂,写个比较Date的函数,用了最蠢的办法:

点击(此处)折叠或打开

  1. /**
  2. * 时间验证函数
  3. * */
  4. protected function checkingDate( firstDate:String, secDate:String):Boolean
  5. {
  6. if(int(firstDate.substr(0,4))>int(secDate.substr(0,4)))
  7. {
  8. AlertUtil.AlertShow("日期范围有误,请确保结束日期在开始日期之后","错误提示",Alert.OK, this,null,3);
  9. return false;
  10. }
  11. else if(int(firstDate.substr(5,2))>int(secDate.substr(5,2)))
  12. {
  13. AlertUtil.AlertShow("日期范围有误,请确保结束日期在开始日期之后","错误提示",Alert.OK, this,null,3);
  14. return false;
  15. }
  16. else if(int(firstDate.substr(8,2))>int(secDate.substr(8,2)))
  17. {
  18. AlertUtil.AlertShow("日期范围有误,请确保结束日期在开始日期之后","错误提示",Alert.OK, this,null,3);
  19. return false;
  20. }
  21. return true;;
  22. }
后面突然发现有现成的封装好的函数调用可以用来实现,而且用户友好性更强

点击(此处)折叠或打开

  1. xmlns:s="library://ns.adobe.com/flex/spark"
  2. xmlns:mx="library://ns.adobe.com/flex/mx"
  3. creationComplete="init(event)"
  4. width="100%" height="100%">
  5. import mx.events.CalendarLayoutChangeEvent;
  6. import mx.events.FlexEvent;
  7. import mx.utils.ObjectUtil;
  8. //-----------------------属性 end------------------------
  9. //-----------------------初始化-----------------------------
  10. /**初始化函数*/
  11. protected function init(event:FlexEvent):void
  12. {
  13. //设置开始日期默认为1月1日
  14. var date:Date=new Date();
  15. datefld_ksrq.selectedDate= new Date (date.getFullYear()-1, 0, 1);
  16. datefld_jsrq.selectedDate= new Date ();
  17. }
  18. //-----------------------初始化 end-----------------------
  19. //-----------------------组件事件响应-----------------------------
  20. /**btnQuery按钮单击事件处理函数
  21. */
  22. /**datefld_ksrq日期控件事件处理函数
  23. */
  24. protected function datefld_ksrq_changeHandler(event:CalendarLayoutChangeEvent):void
  25. {
  26. if(ObjectUtil.dateCompare(event.currentTarget.selectedDate,datefld_jsrq.selectedDate)>0){
  27. var cDateObject:Object={rangeStart:event.currentTarget.selectedDate,rangeEnd:null};
  28. this.datefld_jsrq.selectableRange=cDateObject;
  29. this.datefld_jsrq.selectedDate=event.currentTarget.selectedDate;
  30. }
  31. else
  32. {
  33. cDateObject={rangeStart:event.currentTarget.selectedDate,rangeEnd:null};
  34. this.datefld_jsrq.selectableRange=cDateObject;
  35. }
  36. }
  37. /**datefld_jsrq日期控件事件处理函数
  38. */
  39. protected function datefld_jsrq_changeHandler(event:CalendarLayoutChangeEvent):void
  40. {
  41. if(ObjectUtil.dateCompare(event.currentTarget.selectedDate,datefld_ksrq.selectedDate)<0){
  42. this.datefld_ksrq.selectedDate=event.currentTarget.selectedDate;
  43. }
  44. }
  45. //-----------------------组件事件响应 end-----------------------
  46. ]]>
  47. change="datefld_ksrq_changeHandler(event)" enabled="true"
  48. formatString="YYYY-MM-DD" textAlign="center" yearNavigationEnabled="true"/>
  49. change="datefld_jsrq_changeHandler(event)" enabled="true"
  50. formatString="YYYY-MM-DD" showToday="true" textAlign="center"
  51. yearNavigationEnabled="true"/>
网上看到了一些比较Date的方法,摘过来,貌似比我的简单~~学习~没验证过


1.    ObjectUtil.dateCompare(date1,date2)

 

 

2.    ObjectUtil.dateCompare(date1,date2) 返回值为int类型

date1 > date2    1
date1 = date2    0
date1 < date2   -1

 

3. 自定义方法

    /* 比较两个日期大小 */   

public static function compare(date1:Date, date2:Date):int  {   
   if (Number(date1) < Number(date2)) {   
return -1   
   }   
   if (Number(date1) == Number(date2)) {   
   return 0;   
   }   
   return 1;   

}



阅读(547) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~