字符串格式参数的日期比较函数
我在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;