Haskell:
두 날짜 비교하기

How to:

(어떻게 하나:) 다음은 두 날짜를 비교하는 Haskell 예제와 출력 결과입니다.

import Data.Time

-- 두 날짜를 비교하는 함수
compareDates :: Day -> Day -> Ordering
compareDates date1 date2 = compare date1 date2

main :: IO ()
main = do
  let date1 = fromGregorian 2023 3 14  -- 2023년 3월 14일
      date2 = fromGregorian 2024 3 14  -- 2024년 3월 14일
  print $ compareDates date1 date2

위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다:

LT  -- date1이 date2보다 앞선 날짜임

Deep Dive:

(깊은 탐색:) Haskell에서 날짜를 비교하는 일은 Data.Time 모듈 덕분에 간단합니다. 이 모듈은 Haskell에서 시간을 처리하는 표준 방식을 제공하는데, 국제 표준 시간과 역사적으로 사용되어온 그레고리력을 지원합니다.

Day 타입은 그레고리력의 날짜를 나타내고, compare 함수로 쉽게 비교할 수 있습니다. 두 날짜가 같은지, 이전인지, 이후인지를 판단하는 세 가지 결과(EQ, LT, GT)가 있죠.

대안으로, diffDays 함수를 사용하여 두 날짜 간의 차이를 일 단위로 계산하는 것도 가능합니다. 또한 더 복잡한 날짜와 시간의 비교를 위해서는 UTCTime 타입을 사용할 수 있습니다.

구현에 있어서, 일반적으로 시간대(timezone) 처리는 복잡할 수 있지만, Haskell은 TimeZone 타입과 관련 함수들을 제공해 이 문제를 해결하도록 도와줍니다.

See Also:

(더 보기:)