关于时间比较的问题!(100分)

  • 主题发起人 主题发起人 shuoshuo
  • 开始时间 开始时间
S

shuoshuo

Unregistered / Unconfirmed
GUEST, unregistred user!
我用DateTimePicker控件
var
B_Time:TTime;
begin
B_Time:=datetimepicker1.Time;
IF B_Time>=StrToTime('19:00:00') then
label1.caption:='>'
ELSE label1.caption:='<';
end;

请问不管datetimepicker1改为大于19:00:00还是小于19:00:00 Label1始终都显示'>'
为什麽?急死我了!怎样用DateTimepicker判断时间大小!
 
转化成string再比较
 
var
B_Time:TTime;
begin
B_Time:=DateTimePicker1.Time;
if TimeToStr(B_Time)>='19:00:00' then
label1.caption:='>'
else
label1.caption:='<';
end;
 
字符串比较时间也有问题,当datatimepicker1.time:='01:00:00'时,label1.caption还是
返回'>',只有’10:00:00‘以上才返回小于号!
 
var
B_Time:TTime;
hr,me,sd,ms:word;
begin
B_Time:=datetimepicker1.Time;
decodetime(b_time,hr,me,sd,ms);
IF hr>=19 then
label1.caption:='>'
ELSE label1.caption:='<';
end;
 
控制面板-》区域设置-》24小时的格式
 
如果你使用DateTimeToStr比较,出来的结果是不大正确的,因为这需要看Windows
的区域设置的什么样的,
其实Date是整数,Time是小数,比较起来很简单
将“19:00:00”转换为小数,然后进行数值的比较就可以了,这是完全正确的
0代表1899年
 
sunchen:
请问怎样将时间格式转换成小数格式,举例,多谢!
 
控制面板-》区域设置-》24小时的格式
 
直接取DateTimePicker的时间有一些问题,所以将程序第一句改为即可:
B_Time := StrToTime(TimeToStr(DateTimePicker1.time));
看起来比较臃肿,但事实上这样就可以了。
 
不需要知道小数是多少的,可以这样
var
a, b : TTime;
a := 你自己的时间;
b := StrToTime('19:00:00');
if (a < b) then ...

如果需要知道实际的小数,则
var
a : Real;
b : TTime;
b := StrToTime('19:00:00');
a := b;
ShowMessage(FloatToStr(a));
 
davidc:
你的着还真令!ok!
 
后退
顶部