我在NT Service里,使用delphi的CompareDate函数出错,我怀疑这个函数有bug,总是说我的参数多了'',所以没办法自己弄了一个!
{
//功能:比较日期
//参数:
//a:比较的日期,格式(2013-07-23)
//b:要比较的日期 ,格式(2013-07-24)
//注意:日期格式必须是"yyyy-mm-dd",年月日中间必须有"-",
//两个日期字符串必须年月日长短一致,否则比较结果错误
}
function TForm2.CompareDateEx(const A, B: string): integer;
var
temp: integer; // 返回的值
aList: TStringList; // a字符串List
bList: TStringList; // b字符串List
aInt: integer;
bInt: integer;
i: integer;
begin
temp := 0;
try
// a字符串List
aList := TStringList.Create;
aList.Delimiter := '-';
aList.DelimitedText := trim(A);
// b字符串List
bList := TStringList.Create;
bList.Delimiter := '-';
bList.DelimitedText := trim(B);
for i := 0 to aList.Count - 1 do
begin
aInt := StrToInt(aList[i]);
bInt := StrToInt(bList[i]);
if aInt > bInt then
begin
temp := 1;
break;
end
else if aInt < bInt then
begin
temp := -1;
break;
end;
end;
finally
aList.Free;
bList.Free;
end;
result := temp;
end;
使用例子
procedure TForm2.Button4Click(Sender: TObject);
var
temp: integer;
aStr, bStr: string;
begin
aStr := '2013-07-22';
bStr := '2013-07-23';
temp := self.CompareDateEx(aStr, bStr);
MyLog(aStr + ' : ' + bStr + ' :' + IntToStr(temp));
end;