繁体中文
设为首页
加入收藏
当前位置:网站制作首页 >> Flash教程 >> 格式化日期类SimpleDateFormat

格式化日期类SimpleDateFormat

2007-10-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:下午自己写了个类,格式化日期类SimpleDateFormat。大家看看,交流一下。 初衷:java中有这样的一个类SimpleDateFormat,构造一个对象的时候,制定显示的方式,就可以通过这个类的一个方法获得这种格式的当前日期...

下午自己写了个类,格式化日期类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);

}

}

责任编辑:admin
相关文章