package Utils
{
import mx.formatters.DateFormatter;
public class DateTimeUtil
{
public static const LONG:String="YYYY.MM.DD HH:NN:SS";
public static const SHORT:String="YYYY.MM.DD";
private static var _inst:DateTimeUtil;
private var df:DateFormatter;
public function DateTimeUtil()
{
df=new DateFormatter();
}
public static function getInstance():DateTimeUtil
{
if (!_inst)
_inst=new DateTimeUtil();
return _inst;
}
/**
* 格式化,仅提供长短两种时间格式,默认短时间格式
* @param date
* @param type
* @return
*/
public function formatDate(date:Object=null, type:String=DateTimeUtil.SHORT):String
{
if (!date)
return "";
df.formatString=type;
return df.format(date);
}
/**
* 计算两个时间相差多少天 d1-d2
* @param d1
* @param d2
*/
public function diffDate(d1:Date, d2:Date):int
{
var diff:Number=d1.valueOf() - d2.valueOf();
return int(diff / 24 / 60 / 60 / 1000);
}
/**
* 日期的前一天
* @param date
* @return
*/
public function prevDate(date:Date):Date
{
//new Date(
return addDate(date,-1);
}
/**
* 日期的后一天
* @param date
* @return
*/
public function nextDate(date:Date):Date
{
return addDate(date,1);
}
/**
* 日期添加N天,只支持短时间,即年月日
* @param date
* @param days
* @return
*/
public function addDate(date:Date,days:int):Date
{
return new Date(date.fullYear,date.month,date.date+days);
}
/**
* 日期添加N年,只至支持短时间,即年月日
* @param date
* @param yeas
* @return
*/
public function addYear(date:Date,yeas:int):Date
{
return new Date(date.fullYear+yeas,date.month,date.date);
}
/**
* 传一个2009-12-04 16:17:39类似字符串
* 解析成一个Date对象
*
*/
public static function parseString2Date(str:String):Date
{
var dd:Number=Date.parse(str);
var arr:Array=str.split(" ");
var dateArr:Array=arr[0].toString().split("-");
var timeArr:Array=arr[1].toString().split(":");
var date:Date=new Date(Number(dateArr[0]),Number(dateArr[1]-1),Number(dateArr[2]),Number(timeArr[0]),Number(timeArr[1]),Number(timeArr[2]),0)
return date;
}
/**
* 解析一个时间对象成为
* 类似2009-12-04 16:17:39的字符串
*
*/
public static function parseDate2String(date:Date):String
{
var df:DateFormatter=new DateFormatter();
df.formatString="YYYY-MM-D JJ:NN:SS";
var str:String= df.format(date);
return str;
}
public static function getNowDate():Date
{
var date:Date=new Date();
var now:Date=new Date(date.fullYear,date.month,date.date,date.hours,date.minutes,date.seconds,date.milliseconds);
return now;
}
//判断t2是否介于t1和t3之间
public function comperTime(t1:String,t2:String,t3:String):Boolean
{
var y:Boolean=false;
dateFormatter.formatString = "YYYY-MM-DD JJ:NN:SS";
var str1,str2,str3:String;
str1=dateFormatter.format(t1);
str2=dateFormatter.format(t2);
str3=dateFormatter.format(t3);
str1=str1.replace(myPattern1,'');
str2=str2.replace(myPattern1,'');
str3=str3.replace(myPattern1,'');
if(int(str1)<=int(str2)&&int(str2)<=int(str3))
{
y= true;
}
else
{
y= false;
}
return y;
}
//t2-t1剩余的时间
public function leftTime(t1:String,t2:String):Number
{
var leftTime:Number;
dateFormatter.formatString = "YYYY-MM-DD JJ:NN:SS";
var str1,str2:String;
str1=dateFormatter.format(t1);
str2=dateFormatter.format(t2);
str1=str1.replace(myPattern1,'');
str2=str2.replace(myPattern1,'');
var t:Number=int(str2)-int(str1);
var time:String=t.toString();
if(time.length==6)
{
leftTime=int(time.substring(0,2))*3600+int(time.substring(2,4))*60+int(time.substring(5));
}
else if(time.length==5)
{
leftTime=int(time.substring(0,1))*3600+int(time.substring(1,3))*60+int(time.substring(4));
}
else if(time.length==4)
{
leftTime=int(time.substring(0,2))*60+int(time.substring(2,4));
}
else if(time.length==3)
{
leftTime=int(time.substring(0,1))*60+int(time.substring(1,3));
}
else
{
leftTime=t;
}
return leftTime;
}
}
}
相关推荐
在这个特定的FLEX时间轴代码中,用户可以通过拖动来浏览不同时间段,时间粒度设定为月份,这意味着用户可以逐月查看事件或数据的变化。 尽管该代码的功能尚未完全实现,但其基础操作已经具备,允许开发者对其进行...
在Flex编程环境中,开发人员经常需要处理用户界面中的日期和时间选择,以便用户可以方便地输入或选择日期和时间。Flex带时间的日期控件就是为了解决这一需求而设计的,它允许用户同时选择日期和时间,提供了一种直观...
Flex时间选择组件是一款在CSDN平台上下载并经过二次开发的时间选择工具,主要适用于Web应用程序,旨在提升用户体验,提供更加灵活、便捷的方式来选取和输入时间。这个组件可能基于ActionScript或者Flex技术,这两种...
在本文中,我们将深入探讨“Flex组件时间轴”,这是一种在现代Web开发中广泛使用的界面元素。Flex组件时间轴主要用于组织和展示按照时间顺序排列的数据,它在各种项目中都有着重要的应用,尤其对于需要呈现时间序列...
在这个名为"flex 学习项目中总结的时间处理工具类DateUtils"的项目中,我们可能找到了一个针对Flex开发环境优化的日期处理工具。Flex是一种基于Adobe ActionScript的开源框架,主要用于构建富互联网应用(RIA)。 `...
下面我们将深入探讨Flex时间控件及其组件。 1. Flex时间控件的结构: Flex时间控件通常由两个主要部分组成:TimeInput和TimeChooser。TimeInput是一个文本输入框,用户可以在这里直接输入时间,或者通过相关的事件...
标题提到的“flex带时间的日期控件,直接使用”指的是一个扩展了Flex默认日期选择器功能的控件,它不仅支持选择日期,还包含了时间的选择功能。这在需要用户输入精确到时间的日期数据的应用场景中非常有用。 在Flex...
1. 导入所需的库:确保你的项目已经包含了Flex时间控件的相关库,这可能需要在项目的配置文件(如flex-config.xml)中添加相应的类路径。 2. 在MXML代码中声明控件:通过MXML语法,你可以声明并实例化时间控件,...
在Flex编程环境中,TimeInputEx是一个自定义组件,它继承了NumericStepper类来实现一个专用于输入时间的控件。这个组件允许用户方便地输入小时、分钟和秒,为时间相关的应用程序提供了便利。让我们深入了解一下这个...
在提供的压缩包文件`MyDateField`中,很可能包含了自定义的Flex时间选择控件类或示例代码,可能对标准的`DateField`或`DateSpinner`进行了扩展或修改,以提供更具体的功能或样式。例如,它可能包含了额外的皮肤、...
Flex编译优化方法是提升开发效率的关键,尤其是在大型Flex项目中,编译时间长和Eclipse性能问题可能严重影响开发流程。以下是一些针对Flex编译慢的优化策略: 1. **关闭不必要的项目**:在Eclipse中,确保只开启...
由于没有具体的描述,我将基于常见的Flex时间控件特性来展开讨论。 1. **控件介绍**: DataTimePicker通常提供一个下拉日历和时间选择器,允许用户通过直观的界面选取日期和时间。它提供了多种样式和配置选项,以...
在Flex开发中,时间组件(Time)是用于展示和处理时间数据的重要元素。它通常用于构建用户界面,让用户能够选择或输入时间值。本篇文章将深入探讨Flex中的Time组件,了解其基本用法、功能特性以及如何自定义和扩展。...
Flex 自定义 时间 日历 控件
在Flex开发中,DateField是Adobe Flex UIComponent类的一个子类,用于显示和编辑日期值。这个组件在用户界面设计中非常常见,特别是在需要用户输入日期的表单中。然而,标准的DateField并没有直接提供与时间相关的...
在Flex 3.5开发环境中,时间控件是构建用户界面时不可或缺的一部分,尤其是在需要用户输入或选择特定时间的情况下。本篇文章将详细讲解如何在Flex 3.5中创建一个包含时、分、秒的时间选择器,以及如何进行实际应用。...
本主题聚焦于一个名为"FLEX时间带时分秒可直接使用"的功能,该功能解决了在某些场景下,用户选择新的时分秒后日期会自动跳转至当天的问题。下面我们将深入探讨这一功能的具体实现、应用场景以及相关技术。 首先,...
这个"Flex 常用大收藏"压缩包包含了关于Flex开发中的几个重要主题,包括DataGrid、上传下载、WipeLeft隐藏动画以及分页功能的实现。 首先,我们来探讨DataGrid组件。DataGrid是Flex中用于显示大量结构化数据的组件...
这将涉及到ActionScript的基本语法、面向对象编程概念、Flex组件模型、数据绑定、事件处理机制、时间日期类的使用等知识点。此外,还可能涉及到如何与服务器进行数据交换,如使用AMF(Action Message Format)进行...
flex自带的日期控件是没有时间选择的,本控件集成了时间的选择,另外时间的选择实现了可手动输入,输入的值可以定位下拉列表框. 导入方便,引用方便,提供多种输出格式. 经过测试完全OK,并且该控件已经应用于我们公司的...