날짜 차이를 달력 기준 연, 월, 일로 나타내려면 먼저 달력상의 개월 수를 센 다음 남은 날짜를 세세요. 이 Numbers 안내에서는 가상의 게시 날짜와 명시적인 월말 규칙을 사용해 결과를 확인할 수 있습니다.

예를 들어 아래 방법을 적용하면 2022년 5월 18일부터 2025년 9월 24일까지는 3년 4개월 6일입니다. 2월, 윤년, 1월 31일 같은 날짜도 처리하는 재사용 가능한 스프레드시트를 만들어 보겠습니다.

달력 기준 차이의 의미 정하기

달력 기준 차이를 계산하려면 시작 날짜와 월을 이동하는 규칙이 필요합니다. 경과 일수를 365로 나눈 뒤 다시 30으로 나누면 달력의 경계를 유지할 수 없습니다. 월과 연의 길이가 서로 다르기 때문입니다. TC39 날짜 API 문서는 큰 단위를 요청하지 않으면 날짜 차이가 기본적으로 일 단위로 계산되는 이유를 설명하며 이 차이를 명확히 합니다. Temporal.PlainDate documentation.

이 안내에서는 현대 그레고리력 날짜에 다음 규칙을 적용합니다.

  1. 더 이른 날짜에서 더 늦은 날짜 방향으로 계산합니다.
  2. 달력상의 기준 날짜가 종료 날짜를 넘지 않는 가장 큰 정수 개월 수를 찾습니다.
  3. 대상 월에 시작일과 같은 일자가 있으면 그 일자를 유지하고, 없으면 해당 월의 마지막 날을 사용합니다.
  4. 12개월마다 1년으로 나타낸 다음 기준 날짜에서 종료 날짜까지의 일수를 셉니다.

이 규칙에 따르면 2025년 1월 31일부터 2025년 2월 28일까지는 1개월입니다. 2025년 1월 31일부터 2025년 3월 30일까지는 1개월 30일입니다. 2개월 기준 날짜는 3월 31일이 되어 종료 날짜를 넘기 때문입니다. 이는 선택한 규칙에 따른 결과이지, 보편적인 월의 정의는 아닙니다.

양 끝 날짜를 모두 포함해 세지 말고 경과 날짜를 계산하세요. 따라서 날짜가 같으면 0년 0개월 0일입니다. 날짜 범위에 포함되는 달력 날짜 항목의 수를 세려는 경우에는 다른 계산이 필요합니다.

민간 날짜와 타임스탬프 구분하기

2025-09-24 같은 게시 날짜는 연, 월, 일로 구성된 민간 날짜입니다. 시간이나 특정 순간을 지정하지 않습니다. 2025-09-24T00:30:00+02:00 같은 타임스탬프에는 시간과 숫자로 된 UTC 오프셋이 포함되어 있어 특정 순간을 식별할 수 있습니다. RFC 3339는 이에 해당하는 전체 날짜 및 날짜 시간 구문을 정의합니다. RFC 3339: Date and Time on the Internet: Timestamps.

+02:00 같은 오프셋은 UTC와의 관계를 나타냅니다. Europe/Paris 같은 지역명은 순간과 현지 시간 사이를 변환하는 규칙을 제공하며, 적용되는 오프셋은 바뀔 수 있습니다. RFC 9557은 이 개념들을 구분하고, 오프셋만으로는 현지 달력 계산에 필요한 규칙을 제공할 수 없는 이유를 설명합니다. RFC 9557: Timestamps with Additional Information.

이 스프레드시트에는 의도한 게시 날짜를 직접 입력하세요. 원본에 타임스탬프가 있다면 먼저 게시 날짜를 정의하는 지역명을 정하고, 두 타임스탬프를 모두 해당 지역의 날짜로 변환하세요. 예를 들어 2025-09-24T00:30:00+02:00은 2025-09-23T22:30:00Z와 같은 순간입니다. 기준 지역을 정하기 전에 화면에 표시된 날짜를 선택하면 입력 날짜가 하루 달라질 수 있습니다.

Numbers에서 날짜 차이 워크시트 만들기

Mac에 Numbers가 있어야 하며, A부터 J까지의 열과 행이 두 개 이상 있는 표가 필요합니다. 1행에는 레이블을, 2행에는 계산식을 사용하세요. 아래 수식은 영어 함수 이름과 쉼표 구분자를 사용합니다.

수식을 입력하려면 대상 셀을 선택하고 =로 시작하는 수식을 입력하거나 붙여넣은 다음 Return을 누르세요. Apple 문서에 따르면 등호를 입력하면 Formula Editor가 열리며, Functions Browser에서 함수 도움말을 볼 수 있습니다. Calculate values using data in table cells in Numbers on Mac.

모호하지 않은 시작 날짜와 종료 날짜 입력하기

A1에 시작 날짜, B1에 종료 날짜라는 레이블을 붙이세요. 다음 가상의 게시 날짜를 입력합니다.

셀 수식 해당 날짜
A2 =DATE(2022,5,18) 2022년 5월 18일
B2 =DATE(2025,9,24) 2025년 9월 24일

DATE(year,month,day)을 사용하면 날짜 문자열을 지역별로 다르게 해석하는 문제를 피할 수 있습니다. Apple은 지역 설정에 관계없이 일관되게 날짜를 해석할 수 있도록 이 함수를 사용할 것을 권장합니다. 유효한 달력 날짜와 각 월의 정확한 일수를 입력하세요. DATE.

계속하기 전에 종료 날짜가 시작 날짜와 같거나 그보다 뒤인지 확인하세요. 이 워크시트는 앞 방향의 차이를 계산하며 음수인 달력 기간은 정의하지 않습니다.

종료 날짜 이전의 마지막 달력 기준일 찾기

2행에 다음 레이블과 수식을 순서대로 입력합니다.

셀 1행 레이블 2행 수식
C2 후보 개월 수 =(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2)
D2 완료된 개월 수 =C2-IF(DATE(YEAR(B2),MONTH(B2),MIN(DAY(A2),DAY(EOMONTH(B2,0))))>B2,1,0)
E2 기준 월의 시작일 =EDATE(DATE(YEAR(A2),MONTH(A2),1),D2)
F2 기준 날짜 =DATE(YEAR(E2),MONTH(E2),MIN(DAY(A2),DAY(EOMONTH(E2,0))))

첫 번째 수식은 두 날짜의 연월 위치 간 거리를 계산합니다. Apple의 YEAR 및 MONTH 함수는 날짜 값에서 해당 구성 요소를 추출합니다. YEAR, MONTH.

두 번째 수식은 종료 월에 기준 날짜를 설정해 확인합니다. 그 날짜의 일자는 시작일과 해당 월의 마지막 날 중 작은 값입니다. 이 후보 날짜가 종료 날짜를 넘으면 수식에서 1개월을 뺍니다. 이 조건부 조정은 IF의 문서화된 동작을 사용합니다. IF.

나머지 수식은 실제 기준 날짜를 구성합니다. EDATE은 시작 월의 첫날을 계산된 오프셋만큼 이동하므로, 그 중간 단계에서 유효하지 않은 일자를 만들지 않습니다. EDATE.

그런 다음 워크시트에서 월말 규칙을 명시적으로 적용합니다. DAY은 일자를 추출하고, EOMONTH는 대상 월의 마지막 날짜를 제공하며, MIN은 더 작은 일자를 선택합니다. 따라서 수식에서 짧은 월을 어떻게 처리하는지 확인할 수 있습니다. DAY, EOMONTH, MIN.

결과를 연, 월, 일로 나타내기

다음 수식으로 워크시트를 완성합니다.

셀 1행 레이블 2행 수식
G2 년 =QUOTIENT(D2,12)
H2 개월 =MOD(D2,12)
I2 일 =DATEDIF(F2,B2,"D")
J2 달력 기준 차이 =G2&" years, "&H2&" months, "&I2&" days"

QUOTIENT는 정수 나눗셈의 몫을, MOD은 나머지를 제공하여 완료된 개월 수를 연수와 남은 개월 수로 변환합니다. QUOTIENT, MOD.

예시 날짜에서는 D2이 40이어야 하며, F2은 2025년 9월 18일을 나타내야 합니다. 이 기준 날짜에서 9월 24일까지 6일이므로 결과는 3년 4개월 6일입니다. 간단하게 하려고 텍스트 수식에는 고정된 복수형 레이블을 사용했습니다. 별도의 숫자 열은 다른 계산에 사용할 수 있습니다.

월말과 윤년 확인하기

다음 가상의 날짜 쌍을 사용해 워크시트가 규칙에 맞게 계산하는지 확인하세요. 다른 수식은 그대로 두고 A2 및 B2의 수식만 바꿉니다.

시작 날짜 종료 날짜 예상 연, 월, 일 기준 날짜
2022년 5월 18일 2025년 9월 24일 3, 4, 6 2025년 9월 18일
2025년 1월 31일 2025년 2월 28일 0, 1, 0 2025년 2월 28일
2024년 1월 31일 2024년 2월 29일 0, 1, 0 2024년 2월 29일
2024년 2월 29일 2025년 2월 28일 1, 0, 0 2025년 2월 28일
2025년 1월 31일 2025년 3월 30일 0, 1, 30 2025년 2월 28일
2025년 9월 24일 2025년 9월 24일 0, 0, 0 2025년 9월 24일

위 예시는 명시된 규칙에 따라 계산한 결과입니다. 기준 날짜 알고리즘은 생성한 날짜 쌍 10,000개를 포함해 결정론적 Python 계산으로 확인했으며, Numbers 인터페이스 자체는 실행하지 않았습니다.

D2의 전체 개월 수만큼 원래 시작 날짜를 명시된 월말 규칙에 따라 이동한 다음, I2의 일수만큼 더해 경로를 재구성하여 결과를 확인하세요. 종료 날짜에 도달해야 합니다. 월 기준 날짜는 항상 원래 시작 날짜를 기준으로 계산하세요. 2월을 지난 뒤 한 달씩 반복해서 이동하면 원래의 일자가 사라질 수 있습니다.

세 가지 DATEDIF 결과를 결합하면 안 되는 이유

Apple 문서에 따르면 DATEDIF은 연수, 연수를 제외한 개월 수, 월과 연을 제외한 일수를 계산하는 옵션을 제공합니다. "MD" 옵션은 대체된 월을 이용해 특정 방식으로 일자를 계산합니다. 따라서 선택한 월말 조정 이후 남은 일수를 뜻한다고 가정해서는 안 됩니다. 이 워크시트에서는 명시적인 기준 날짜와 종료 날짜 사이에서만 "D"를 사용합니다. DATEDIF.

이 작업을 날짜 API에 대응하기

이 작업을 구현하는 소프트웨어를 위해 TC39는 날짜 전용 유형인 Temporal.PlainDate와 달력 기준 차이 연산을 문서화합니다. largestUnit: 'year'로 until을 요청하면 연수와 그보다 작은 단위로 기간이 계산되며, 기본 옵션을 그대로 두면 일 단위 차이가 계산됩니다. 문서에서는 제약된 월 더하기도 설명하며, 서로 다른 달력 체계의 날짜 간 차이는 공통 달력으로 변환하지 않는 한 거부합니다. Temporal.PlainDate documentation.

이 API 선택은 워크시트의 핵심 결정 사항을 다시 보여 줍니다. 날짜 전용 입력을 식별하고, 달력을 선택하고, 가장 큰 단위를 지정하며, 월을 해석할 기준 날짜를 유지해야 합니다. 날짜 문자열 표준은 표현 방식을 설명하지만, 표현 방식을 선택하는 것만으로 해당 작업의 월말 규칙이 정해지지는 않습니다.

예상과 다른 결과를 사용하기 전에 해결하기

수식에 오류가 발생하면 오류 표시를 선택해 메시지를 확인하세요. Apple의 Numbers 안내에서도 이 진단 단계를 설명합니다. 셀 참조를 확인하고, 설치된 버전에서 다른 수식 구분자를 사용하는 경우 Functions Browser를 이용해 인수를 삽입하세요. Calculate values using data in table cells in Numbers on Mac.

계산 결과가 그럴듯하지만 다른 도구와 다르면 해당 도구의 월말 규칙을 이 워크시트의 규칙과 비교하세요. 다른 도구가 양 끝 날짜를 모두 포함하는지, 민간 날짜가 아니라 타임스탬프를 사용하는지, 또는 결과를 반올림하는지도 확인하세요. 역순 날짜와 빈 입력은 0으로 바꿔 오류를 숨기지 말고 이 정방향 계산에서 제외하세요.

게시 날짜를 반복해서 비교하려면 최종 표현과 함께 시작 날짜, 종료 날짜, 기준 날짜를 보관하세요. 이 정보가 함께 있으면 “3년 4개월 6일” 같은 결과를 특정 달력 계산으로 추적할 수 있습니다.

출처