StartprogrammingusingObjectPascal:DateTimeComparison

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

날짜/시간 비교하기

실수를 비교하는 것과 마찬가지로 두개의 날짜/시간 변수를 비교할 수 있습니다. 예를 들어 실수에서 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 함수도 사용하였습니다.