| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash辅助软件 > 文章正文 用户登录
AE的基础教程(PDF
SWF格式电子书制作
上网要当心!HTML
FreeBSD连载(57):
SQL Server时间格
SQL Server时间格
判别剪贴板上所有
在VB6中导出EXCEL
VB中的Unicode 和
货币数字转化为大

格式化日期类SimpleDateFormat           

格式化日期类SimpleDateFormat

作者:佚名 来源:不详 更新:2007-1-13 20:42:30 错误报告 我要投稿
         下午自己写了个类,格式化日期类SimpleDateFormat。大家看看,交流一下。
初衷:java中有这样的一个类SimpleDateFormat,构造一个对象的时候,制定显示的方式,就可以通过这个类的一个方法获得这种格式的当前日期。想想flash中好象还没有这个功能,每次要获得日期还要调用Date中的n个方法,最后字符串拼凑才能得到想要的格式,感觉麻烦,开动脑筋,写了这个类。
使用:在flash中第一帧写上var sim = SimpleDateFormat("yyyy/MM/dd");
然后new一个日期对象var date = new Date();然后把date格式化,调用方法并显示出来:trace(sim.format(date))这样就可以得到型如这样yyyy/MM/dd的日期2004/07/03了,如果你在构造sim对象时这样写var sim = SimpleDateFormat("yy/MM/dd");就可以得到型如这样yy/MM/dd的日期04/07/03了,只要你想要什么样的格式,就在构造sim对象时写出他的格式就可以了。就是说,日期的分隔,和显示方式都可以由你自己任意指定。
这里有如下规定:
y表示年,yy表示显示2位,yyyy显示全部,
M表示月,都要用MM
d表示日,都要用dd
如果不要年月日其中的哪个也可以,就在构造时不写就可以了,比如说不要年,只显示月日就可以这样var sim = SimpleDateFormat("MM/dd");
具体代码如下,大家讨论,看有什么不当的地方,我再改正,到时再写一个详细教程,并把这个类提供给大家使用,一个咱们自己开发的类,自己用,呵呵。我还会写相关的一些类,希望有兴趣的朋友到时关注


/**
   * Title: 格式化日期类
   * Description:
   * Company:
   * Copyright
   * @author wei386
   * @version 1.0
   */
class SimpleDateFormat
{
   private var timetype :String;
   private var date:Date;
   private var year:String;
   private var month:String;
   private var day:String;
   
   function SimpleDateFormat(type:String)
   {
      this.timetype=type;
   }
   /**
    * 得到包含字符串firststring的开始位置
    * @param String firststring
    * @return Number
    */
   private function firstString(firststring:String):Number
   {
             var starts:Number = timetype.indexOf(firststring);
      return starts;
   }
   /**
    * 得到包含字符串firststring的结束位置
    * @param String firststring
    * @return Number
    */
   private function lastString(laststring:String):Number
   {
      var ends:Number = timetype.lastIndexOf(laststring);
      return ends;
   }
   /**
    * 查找是否年
    * @param
    * @return Boolean
    */
   private function findYear():Boolean
   {
      var starts = this.firstString("y");
      var ends = this.lastString("y");
      var yeartype = ends-starts;
      if(yeartype==3)
      {
         this.year=""+this.date.getFullYear();
         return true;
      }else if(yeartype==1)
      {
         var shortyear :String= ""+this.date.getFullYear();
         this.year = shortyear.substring(2,4);
         return true
      }else if(starts==-1||ends==-1)
      {
         return false;
      }
      else{
      trace("年份格式不正确");
      return false;
      }
   }
   /**
    * 查找是否月
    * @param
    * @return Boolean
    */
   private function findMonth():Boolean
   {
      var starts = this.firstString("M");
      var ends = this.lastString("M");
      var monthtype = ends-starts;
      if(starts==-1)
      {
         return false;
      }
      else if(monthtype==1)
      {
         var newmonth = this.date.getMonth()+1;
         if(newmonth<10)
         {
            this.month="0"+newmonth;
         }else{
         this.month=""+newmonth;
         }
         return true
      }
      else{
         trace("月份格式不正确");
         return false;
         }
   }
   /**
    * 查找是否日
    * @param
    * @return Boolean
    */   
   private function findDay():Boolean
   {
      var starts = this.firstString("d");
      var ends = this.lastString("d");
      var monthtype = ends-starts;
      if(starts==-1)
      {
         return false;
      }
      else if(monthtype==1)
      {
                var newday=this.date.getDate();
         if(newday<10)
         {
             this.day="0"+newday;
         }else
         {
            this.day=""+newday;
         }
         return true
      }
      else{
         trace("日子格式不正确");
         return false;
         }
   }
   /**
    * 按照构造函数时的格式,格式化传进来的date对象
    * @param Date pdate
    * @return String
    */
   public function format(pdate:Date):String
   {
      this.date=pdate;
      var stringlength = timetype.length;
      var ystarts = this.firstString("y");
      var yends = this.lastString("y");
      var mstarts = this.firstString("M");
      var mends = this.lastString("M");
      var dstarts = this.firstString("d");
      var dends = this.lastString("d");
      var isyear=this.findYear();
      var ismonth=this.findMonth();
      var isday=this.findDay();
      if(isyear)
      {
         this.showresult(ystarts,yends,this.year);
      }
      if(ismonth)
      {
         this.showresult(mstarts,mends,this.month);
      }
      if(isday)
      {
         this.showresult(dstarts,dends,this.day);
      }
      
      return timetype;
   }
   /**
    * 在相应的位置替换成日期结果
    * @param Number nstart,Number nend,String ndate
    * @return void
    */
   private function showresult(nstart:Number,nend:Number,ndate:String):Void
   {
      this.timetype = this.timetype.substring(0,nstart)+ndate+this.timetype.substring(nend+1,this.timetype.length);
   }
}
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。