日期计算在很多开发语言中都是一个让人“讨厌”的问题,接下来的例子演示了日期时间相关的一些计算,相信比较符合一些“懒人”的胃口。 :)
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整实现代码(或点击这里察看):
Download: main.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridColumn;
private function init():void {
var zeroDate:Date = new Date(0);
/* fullYear */
arrColl.addItem({label:"+2 years", data:dateAdd("fullYear", 2, zeroDate)});
arrColl.addItem({label:"-2 years", data:dateAdd("fullYear", -2, zeroDate)});
/* month */
arrColl.addItem({label:"+11 months", data:dateAdd("month", 11)});
arrColl.addItem({label:"-11 months", data:dateAdd("month", -11)});
/* date */
arrColl.addItem({label:"+4 date", data:dateAdd("date", 4)});
arrColl.addItem({label:"-4 date", data:dateAdd("date", -4)});
/* hours */
arrColl.addItem({label:"+6 hours", data:dateAdd("hours", 6)});
arrColl.addItem({label:"-6 hours", data:dateAdd("hours", -6)});
/* minutes */
arrColl.addItem({label:"+45 minutes", data:dateAdd("minutes", 45)});
arrColl.addItem({label:"-45 minutes", data:dateAdd("minutes", -45)});
/* seconds */
arrColl.addItem({label:"+900 seconds", data:dateAdd("seconds", 900)});
arrColl.addItem({label:"-900 seconds", data:dateAdd("seconds", -900)});
/* milliseconds */
arrColl.addItem({label:"+720000 milliseconds", data:dateAdd("milliseconds", 720000)});
arrColl.addItem({label:"-720000 milliseconds", data:dateAdd("milliseconds", -720000)});
}
private function dateAdd(datepart:String = "", number:Number = 0, date:Date = null):Date {
if (date == null) {
/* Default to current date. */
date = new Date();
}
var returnDate:Date = new Date(date.time);;
switch (datepart.toLowerCase()) {
case "fullyear":
case "month":
case "date":
case "hours":
case "minutes":
case "seconds":
case "milliseconds":
returnDate[datepart] += number;
break;
default:
/* Unknown date part, do nothing. */
break;
}
return returnDate;
}
private function data_labelFunc(item:Object, column:DataGridColumn):String {
return dateFormatter.format(item[column.dataField]);
}
]]>
</mx:Script>
<mx:ArrayCollection id="arrColl" />
<mx:DateFormatter id="dateFormatter"
formatString="YYYY/MM/DD HH:NN:SS" />
<mx:Label text="Now: {dateAdd()}" />
<mx:DataGrid id="dataGrid"
dataProvider="{arrColl}"
sortableColumns="false"
width="400">
<mx:columns>
<mx:DataGridColumn dataField="label"
headerText="Label"
width="150" />
<mx:DataGridColumn dataField="data"
headerText="YYYY/MM/DD HH:NN:SS"
labelFunction="data_labelFunc" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
分享到:
相关推荐
1、实现了将日期时间型、日期型、时间型转换为字符串型功能; 2、实现了日期时间型按天、小时、分钟、秒进行加减; 3、实现了日期型按天加减; 4、实现了时间型按小时、分钟、秒进行加减;
flex中的时分秒计算,对大家可能会有帮助,在此上传纯粹是为了感谢那些共享资源的亲们!
flex计算连个日期之间相差的天数
flex自带的日期控件是不带时间的,这个控件解决了这个问题。可直接使用
Flex带时间的日期控件,样式和官方的一样,好看精简
flex中文帮助flex中文帮助flex中文帮助flex中文帮助
Flex时间计算 当然输入的日期: 昨天: 明天: 本月总天数: 本月总周数: 本月1号星期: 本月第一周星期一是几号: 当前日期在哪年哪月第几周: 当前日期的上一周: 当前日期的下一周:
Flex 日期时间选择控件,可选择小时、分钟、12/24小时格式
自扩展Flex控件,可以同时选择日期和时间 自扩展Flex控件,可以同时选择日期和时间 自扩展Flex控件,可以同时选择日期和时间
flex Date 日期转换 推算向前后 加减多少小时 多少天 多少分秒的时间 application文件 下载直接运行 看效果
Flex例子Flex例子Flex例子Flex例子Flex例子Flex例子
FFLEX 平移,缩放例子FLEX 平移,缩放例子FLEX 平移,缩放例子FLEX 平移,缩放例子FLEX 平移,缩放例子FLEX 平移,缩放例子FLEX 平移,缩放例子FLEX 平移,缩放例子FLEX 平移,缩放例子LEX 平移,缩放例子
flex中文帮助文档flex中文帮助文档
Flex两个小例子Flex两个小例子Flex两个小例子Flex两个小例子Flex两个小例子
FlexAPI在企业计算环境中的应用 希望对大家有用.
FLEX时间轴代码,时间轴可以拖动,时间粒度为月粒度,功能还不完善,但已经基本可以使用,欢迎下载后修改和补充,此代码仅供学习和研究之用,请勿用于任何商业用途,后果自负.
flex 日期控件可选时分秒
flex bison使用c++方式实现的例子 flex bison使用c++方式实现的例子
flex自带的日期控件是没有时间选择的,本控件集成了时间的选择,另外时间的选择实现了可手动输入,输入的值可以定位下拉列表框. 导入方便,引用方便,提供多种输出格式. 经过测试完全OK,并且该控件已经应用于我们公司的...
FLEX计算机FLEX计算机FLEX计算机