社区
C++ Builder
帖子详情
怎么比较时间的大小
yjjzyr
2009-08-03 04:11:22
AnsiString stime1,etime;
stime1="2008-12-9 1:18:00"; etime="2008-12-9 1:17:00";
这两个变量如何比较大小?
...全文
2096
7
打赏
收藏
怎么比较时间的大小
AnsiString stime1,etime; stime1="2008-12-9 1:18:00"; etime="2008-12-9 1:17:00"; 这两个变量如何比较大小?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lhy
2009-08-04
打赏
举报
回复
还是直接比较好,之所以VCL把TDateTime作成浮点类型,就是为了方便嘛。
EagleFew
2009-08-04
打赏
举报
回复
二楼的厉害.
#include "DateUtils.hpp"
TDateTime dt1, dt2;
dt1 = StrToDateTime(stime1);
dt2 = StrToDateTime(stime2);
if ( CompareDateTime(dt1, dt2) > 0 )
{
//dt1 大于 dt2
}
else if ( CompareDateTime(dt1, dt2) == 0 )
{
// dt1 等于 dt2
}
else
{
// dt1 小于 dt2
}
AuroraAlpha
2009-08-04
打赏
举报
回复
可以 DateTimeToUnix 直接变成时间戳来比较
fairchild811
2009-08-03
打赏
举报
回复
还是用CompareDateTime比较比较好吧,因为TDateTime是浮点类型的,直接比较不是很好吧
米的向日葵
2009-08-03
打赏
举报
回复
用SysUtils单元中的
StrToDateTime
转换一下,然后用
DateUtils单元中的
CompareDateTime
比较
lghndyz
2009-08-03
打赏
举报
回复
if( StrToDateTime(stime1)>StrToDateTime(etime))
{
ShowMessage("stime1大于etime");
}
else
{
ShowMessage("etime大于stime1");
}
DateTimeToFileDate函数:
定义:DateTimeToFileDate(DateTime: TDateTime): Integer;
作用: 将一个TDateTime类型的时间转化为Dos环境中的时间,Dos环境下对时间的访问
方法和VCL中的TdateTime类型不一样,在进行文件操作时,为了保持时间的一致性,需
要使用DateTimeToFileDate函数进行转化,返回的Integer的值就是Dos下的用于描述时
间的值。
DateTimeToSystemTime 过程:
定义:procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TS
ystemTime);
作用:将一个TDateTime类型的时间转换为Win API函数所使用的TSystemTime类型,在使
用WinApi函数操纵时间时用到。
SystemTimeToDateTime 函数:
定义:function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTim
e;
作用:将一个在WinApi函数中得到的TSysTemTime类型的数转换为TDateTime类型。
DateTimeToTimeStamp 函数:
TimeStampToDateTime 函数:
定义:DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
作用:用于在TDataTime类型与TTimeStamp之间进行互相转换。TDataTime 用一个doubl
e描绘一个时间,而TTimeStamp则是采用两个整形数分别描述时间。两种类型的区别可参
考文章开始处的数据类型描述部分。
EncodeDate 函数:
定义:function EncodeDate(Year, Month, Day: Word): TDateTime;
作用: 输入年(year),月(month),日(day)的值,将该日期返回为TDateTime类型,年
的范围为1-9999,月份的范围为1-12,日期的范围视当月的情况而定,如果输入的值超出
范围,则将产生一个EConvertError错误。
DecodeDate 过程:
定义:procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
作用:输入一个TDateTime类型的日期,将其转为年(Year),月(Month),日(Day)的值。
如果输入值为0或小于0,则年月日均为0,
EncodeTime 函数:
定义:EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
作用:输入小时(Hour),分(min),秒(Sec),微秒(MSec)的值,返回一个TDateTime类型的
时间,该值为一个介于0至1之间的小数。Hour的取值范围为0-23,Min的取值范围为0-59
,Sec的取值范围为0-59,MSec的取值范围为0-999,如果输入值超出范围,则产生一个EC
onvertError 错误。
DecodeTime 过程:
定义:procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
作用:输入一个时间,将其转换为小时(Hour),分(min),秒(Sec),微秒(MSec)的值。
TDateTime类型与字符串型转换函数:
DateTimeToStr 函数:
DateToStr 函数
TimeToStr函数
定义:function DateTimeToStr(DateTime: TDateTime): string;
function TimeToStr(Time: TDateTime): string;
function TimeToStr(Time: TDateTime): string;
作用:将一个TDateTime类型的数转换成字符串,DateTimeToStr转换日期和时间,Date
ToStr只转换日期,TimeToStr只转换时间。转换后的输出效果为YYYY-M-D H:M:S
StrToDateTime函数
StrToDate函数
StrToTime函数
定义:function StrToDateTime(const S: string): TDateTime;
function StrToDate(const S: string): TDateTime;
function StrToTime(const S: string): TDateTime;
作用:将带有日期时间格式的字符串转化成TDateTime,其中S必须是一个有效的字符串
,如
YY-MM-DD HH:MM:SS格式,否则就会触发EConvertError事件,提示错误信息。
时间部分的字符串必须是由2~3个的数值字串构成,并且采用在Windows区域设置
中设置的分隔字符进行分隔,其格式要求符合在Windows区域设定中的设定,其中HH,MM(
小时,分钟)必须添加,SS(秒)可选,也可以在后面加入 Am和Pm区分上下午,这时候
系统将认为采用12小时表示法,否则认为采用24小时表示法。
日期部分的格式要求符合Windows区域设置中的短日期格式,也是由2~3个的数值
字串构成,如果在字符串中只有2个数,则认为是指定了月份和日期,年份采用当前年份
,
如果在区域设置中采用两位年份的表示方法,则系统将会采用以下方法处理:
首先在区域设置中取得两位年份的起始年份,如在区域设置中设两位年份范围为
1932-2031年,则起始年份为32年,如果这个起始年份为0,则认为两位年份表示的都是
本世纪,如果其实年份大于0 ,则采用当前年份减去起始年份的值,这个值称为基准值
,大于等于这个值则认为事本世纪,否则认为是下世纪,下面给出几个例子说明:
DateTimeToString 过程:
FormatDateTime 函数:
定义:procedure DateTimeToString(var Result: string; const Format: string; D
ateTime: TDateTime);
function FormatDateTime(const Format: string; DateTime: TDateTime): s
tring;
作用:通过定义Format字串中的格式得到要输出时间字符串,例如要输出“今天是2002
年5月5日,星期五”就可以用这两种方法,这两个方法的作用相同,只是一个是通过共
享变量取得输出字符串,值在Result中,一个是通过返回值取得输出字符串,DateTime
参数是希望输出的日期值,Format由格式标志与附加字符串组合而成。附加字串用””
圈起,就像C中的Printf函数.如“今天是2002年5月5日,星期五”的Format值就是 ‘”
今天是”yyyy”年”mm”月”dd”日,” dddd’,yyyy,mm,dd,dddd都是格式标识,各
种格式标识的解释如下:
d :用一位或两位整数显示日子(1-31)
dd :用两位整数显示日子,不足两位的用0补足(01-31)
ddd :按缩略方式显示当前的星期号,如果Windows是英文版,则显示为Mon
-Sun,如果是中文版,则显示同dddd。
dddd :按完整方式显示当前的星期号,如Windows是英文版,则显示Monday-
SumDay,如果是中文版,则显示星期一~星期日
ddddd :按区域设置中的短日期格式输出。
dddddd :按区域设置中的长日期格式输出。
m :用一位或两位整数显示月份(1-12)
mm :用两位整数显示月份,不足两位的用0补足(01-12)
mmm :使用缩略方式显示月份名称,英文版显示为Jan-Dec,中文版同mmmm
mmmm :使用完整方式显示月份名称,英文版显示为January-December,中文版
为一月~十二月
yy :按两位整数方式显示年份(00-99)
yyyy :按四位整数方式显示年份(0000-9999)
h :用一位或两位整数显示小时(0-23)
hh :用两位整数显示小时,不足两位的用0补足(00-23)
n :用一位或两位整数显示分钟(0-60)
nn :用两位整数显示分钟,不足两位的用0补足(00-60)
s :用一位或两位整数显示秒数(0-60)
ss :用两位整数显示秒数,不足两位的用0补足(00-60)
z :用一位至两位整数显示毫秒数(0-999)
zzz :用三位整数显示毫秒数,不足三位的用0补足(000-999)
tt :按照区域设置中的格式显示日期
am/pm :用于12小时制的显示,带有AM的则表示从0点~12点,pm代表从12点~
0点。
与时间相关的变量:
Delphi封装了区域设置的各种信息,并以此定义了一系列的变量,下面介绍与时间相关
的部分变量:
DateSeparator :Char
日期分隔符,用于分隔年月日
TimeSeparator :Char
时间分隔符,用于分隔小时,分钟,秒
ShortDateFormat:String
区域设置中短日期格式的定义。
LongDateFormat :String
区域设置中长日期格式的定义。
ShortTimeFormat:String
区域设置中短时间格式的定义。
LongTimeFormat :String
区域设置中长时间格式的定义。
TimeAMString :String
用来表示上午的字符串
TimePMString :String
用来表示下午的字符串
ShortMonthNames:array[1..12] of String;
用于缩略表示月份名称的数组,就是在使用FormatDateTime时显示的mmm标识的字符串
LongMonthNames:array[1..12] of String;
用于完整表示月份名称的数组,就是在使用FormatDateTime时显示的mmmm标识的字符串
ShortDayNames :array[1..7] of String;
用于缩略表示星期名称的数组,就是在使用FormatDateTime时显示的ddd标识的字符串
LongDayNames :array[1..7] of String;
用于完整表示星期名称的数组,就是在使用FormatDateTime时显示的ddd标识的字符串
TwoDigitYearCenturyWindow:Word = 50;
在使用两位年份时的起始年份。
Jim@luckeeinc.com
2009-08-03
打赏
举报
回复
if( StrToDateTime(stime1) > StrToDateTime(stime2) )
Android联动选择
时间
和地址
本项目提供的自定义`wheelview`
时间
选择器可以实现更灵活的设计,如自定义样式、颜色、字体
大小
等。通过调整选中条目的
大小
,使得用户更容易识别当前选择,增强了交互性。 地址选择则涉及到地理定位和数据管理。...
Android中获取应用程序(包)的信息 PackageManager的使用
在Android中,我们可以获取到应用的安装
大小
,但这个信息并不直接包含在`PackageManager`提供的标准信息中。通常需要通过读取`/data/app`或`/system/app`目录下的APK文件的
大小
来计算。另外,如果需要获取已安装应用...
jQuery EasyUI 1.4 离线简体中文API文档 含完整开发工具包+皮肤+扩展+演示
datetimespinner:该组件是一个日期和
时间
的微调组件 它允许我们选择一个特定的日期或
时间
; filebox:filebox 该组件表单元素中用于上传文件的文件框工具组件 ">(题外话:从本次开始 我新增了jQuery EasyUI的专题...
rtmp 协议规范 中文版
时间
戳是一个 32 位整数,以毫秒为单位的相对
时间
,相对于一个未规定的起始
时间
。负载类型标志用于标识消息的类型,例如音频、视频或交互数据。 RTMP 块流提供了握手机制,用于建立连接和维护连接。握手机制包括 C0...
java
比较
时间
大小
我们做一些业务开发的时候,经常会遇到关于日期的条件的判断,我举个例子:在一次列表中会有一次对日期的...可以理解为以括号里的日期为准,表示以它之前的日期来
比较
2.after 表示在xxx之后,前面大后面小 那就是tr
C++ Builder
13,871
社区成员
102,694
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章