Flex 框架提供了两个控件用来实现日历样式的功能:DateField 和DateChooser 控件。DateField
控件提供了一个TextInput 控件和一个点击可以打开日历的日历图标。DateChooser,则不同,
它提供了一个可视的日历给用户操作。下列范例是一个简单的旅程计算器用来展示两种类
型的控件。用户使用DateField 选择开始日期,使用DateChooser 选择结束日期。程序会在
控件的change 事件触发update 事件处理函数中计算旅途持续时间。两个控件的selectedDate
属性会返回用户选择的Date 对象。
在日期运算中,使用Date 对象的getTime 方法是非常重要的,以便正确处理闰年。getTime
方法返回从1970 年1 月1 日起流逝的毫秒数。
控件提供了一个TextInput 控件和一个点击可以打开日历的日历图标。DateChooser,则不同,
它提供了一个可视的日历给用户操作。下列范例是一个简单的旅程计算器用来展示两种类
型的控件。用户使用DateField 选择开始日期,使用DateChooser 选择结束日期。程序会在
控件的change 事件触发update 事件处理函数中计算旅途持续时间。两个控件的selectedDate
属性会返回用户选择的Date 对象。
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:Form>
<mx:FormHeading label="Trip Calculator"/>
<mx:FormItem label="Start Date">
<mx:DateField id="startDate" change="update(event)"/>
</mx:FormItem>
<mx:FormItem label="End Date">
<mx:DateChooser id="endDate" change="update(event)"/>
</mx:FormItem>
<mx:FormItem label="Trip Duration (days)">
<mx:Label id="display"/>
</mx:FormItem>
</mx:Form>
<mx:Script>
<![CDATA[
import mx.events.CalendarLayoutChangeEvent;
private static const MILLISECONDS:int = 1000;
private static const SECONDS:int = 60;
private static const MINUTES:int = 60;
private static const HOURS:int = 24;
private function
update(evt:CalendarLayoutChangeEvent):void {
try {
var diff:Number = endDate.selectedDate.getTime()
-startDate.selectedDate.getTime();
// 把毫秒转换成天数
var days:int =
int(diff/(MILLISECONDS*SECONDS*MINUTES*HOURS));
display.text = days.toString();
}
catch(ex:Error) {
}
}
]]>
</mx:Script>
</mx:Application>
在日期运算中,使用Date 对象的getTime 方法是非常重要的,以便正确处理闰年。getTime
方法返回从1970 年1 月1 日起流逝的毫秒数。