StartprogrammingusingObjectPascal:DateTimeComparison
날짜/시간 비교하기
실수를 비교하는 것과 마찬가지로 두개의 날짜/시간 변수를 비교할 수 있습니다. 예를 들어 실수에서 9.3은 5.1보다 크며 TDateTime 값에 대해서도 마찬가지 입니다. 내일을 나타내는 Now + 1은 오늘(Now) 보다는 크며, 한 시간 이후를 나타내는 Now + 1/24도 역시 지금으로부터 두 시간 전을 나타내는 Now-2/24 보다 큽니다.
다음 예제에서 2012년 1월 1일 날짜를 변수에 넣고, 현재 날짜와 비교하여 이 날짜가 지났는지 아직 안 지났는지를 확인하겠습니다.
var
Year2012: TDateTime;
begin
Year2012:= EncodeDate(2012, 1, 1);
if Now < Year2012 then
Writeln('Year 2012 is not coming yet')
else
Writeln('Year 2012 is already passed');
Write('Press enter key to close');
Readln;
end.
이 예제에 해당 날짜로부터 얼마나 남았는지 또는 지났는지 표시하는 새로운 함수를 넣을 수 있습니다.
var
Year2012: TDateTime;
Diff: Double;
begin
Year2012:= EncodeDate(2012, 1, 1);
Diff:= Abs(Now - Year2012);
if Now < Year2012 then
Writeln('Year 2012 is not coming yet, there are ',
Format('%0.2f', [Diff]), ' days Remaining ')
else
Writeln('First day of January 2012 is passed by ',
Format('%0.2f', [Diff]), ' Days');
Write('Press enter key to close');
Readln;
end.
Diff는 현재 날짜와 2012년 날짜 사이의 차이를 가질 실수 변수입니다. 숫자의 절대 값(음의 부호가 없는 숫자)을 되돌려주는 Abs 함수도 사용하였습니다.