요일을 알아볼 날짜를 고르세요(키보드로 직접 입력해도 됩니다). 무슨 요일인지와 함께 그해의 몇 번째 날인지(연중 일수), 그해의 몇 번째 그 요일인지도 계산합니다.
이 페이지에서 할 수 있는 것
- 날짜만 넣으면 그날이 무슨 요일인지 바로 알 수 있습니다(서기 1년부터 9999년까지)
- ‘그해의 몇 번째 날인지(연중 일수)’와 ‘12월 31일까지 남은 일수’도 함께 알 수 있습니다
- ‘그해의 몇 번째 그 요일인지’(예를 들어 1년에 52번 있는 토요일 중 27번째 등)도 알 수 있습니다
- 태어난 날의 요일, 역사적 사건이 있었던 날의 요일, 앞으로 올 기념일의 요일처럼 달력이 없는 날짜의 요일을 알아볼 때 쓸 수 있습니다
- 요일을 계산으로 구하는 원리(첼러의 공식)에 대한 쉬운 해설과 Excel, Google 스프레드시트, Python용 복사해 쓰는 수식도 이 페이지에 정리되어 있습니다
이 계산은 어디에 쓰일까요?
나나 가족이 태어난 날이 무슨 요일이었는지는 의외로 잘 모릅니다. 출생신고서나 가족관계증명서에는 날짜는 적혀 있어도 요일까지는 적혀 있지 않습니다.
태국이나 미얀마에는 ‘태어난 요일’을 소중히 여기는 문화가 있고(태국에서는 요일마다 색과 불상이 정해져 있습니다), 외국 친구에게 태어난 요일을 질문받고 찾아보는 사람도 많은, 가장 대표적인 쓰임새입니다.
1919년 3월 1일(3·1 운동)은 토요일, 1945년 8월 15일(광복)은 수요일, 1988년 9월 17일(서울 올림픽 개회식)은 토요일이었습니다. ‘그날이 무슨 요일이었는지’를 알면 당시 사람들의 하루(평일이었는지, 쉬는 날이었는지)를 입체적으로 떠올릴 수 있습니다.
다만 한국의 기록에서 1896년 이전 날짜는 음력으로 적힌 경우가 많고, 유럽의 1582년 10월 14일 이전 기록은 율리우스력 날짜인 경우가 많아서, 이 계산기의 결과(그레고리력을 거슬러 적용한 요일)와 다를 수 있습니다.
결혼기념일이나 창립기념일, 가족의 생일이 내년, 5년 후, 10년 후에 무슨 요일이 되는지 미리 알아 두면 ‘딱 토요일에 해당하는 해에 성대하게 축하하자’ 같은 계획을 세울 수 있습니다.
예식장이나 식당의 예약·가격도 요일에 따라 크게 달라지므로, 먼 미래 날짜의 요일을 알고 싶은 상황은 의외로 많습니다.
은행 창구나 관공서 업무는 평일에만 하므로 ‘이 영수증 날짜가 정말 영업일이었을까’처럼 지난 서류의 날짜가 평일인지 주말인지 확인하고 싶을 때가 있습니다.
일기나 가계부 기록 정리, 추억의 날(처음 만난 날, 이사한 날)의 요일 확인에도 쓸 수 있습니다. 다만 이 계산기로는 공휴일(설날·추석 연휴, 대체공휴일 등)을 알 수 없으므로, 공휴일을 포함한 영업일 판단에는 달력도 함께 확인하세요.
이사나 결혼 날짜를 잡을 때 자주 이야기하는 ‘손 없는 날’은 음력 날짜의 끝자리가 9나 0인 날을 말하며, 월~일의 요일과는 전혀 다른 원리입니다. 이 페이지에서 계산할 수 있는 것은 월~일의 요일뿐이고, 손 없는 날은 알 수 없습니다.
한편 이삿짐센터나 예식장의 예약 상황과 가격은 손 없는 날과 함께 ‘주말인지 평일인지’에도 크게 좌우되므로, 날짜를 잡을 때는 요일도 꼭 확인해 볼 가치가 있습니다.
공식
용어·기호 해설
기호
| \(h\) | 에이치 | 첼러의 공식의 답이 되는 요일 번호입니다. 0 = 토요일, 1 = 일요일, 2 = 월요일, …, 6 = 금요일로 대응합니다. |
| \(q\) | 큐 | 일(‘7월 4일’의 4 부분)입니다. 첼러의 공식에서는 일을 이 문자로 나타내는 것이 관례입니다. |
| \(m\) | 엠 | 월입니다. 다만 1월과 2월은 ‘전년도의 13월·14월’로 보아 \(m = 13\), \(m = 14\)로 계산합니다. 영어 month의 첫 글자입니다. |
| \(K\) | 케이(대문자) | 서기 연도의 끝 두 자리입니다. 2026년이라면 \(K = 26\)입니다(1월·2월은 전년도로 본다는 점에 주의). |
| \(J\) | 제이(대문자) | 서기 연도의 앞 두 자리(세기 부분)입니다. 2026년이라면 \(J = 20\)입니다. |
| \(\lfloor x \rfloor\) | 플로어 엑스(바닥 함수) | \(x\)를 넘지 않는 가장 큰 정수입니다. 0 이상의 수에서는 소수점 아래를 버리는 것과 같아서 \(\lfloor 20.8 \rfloor = 20\)입니다(이 공식에서 버림하는 수는 모두 0 이상입니다). 가우스 기호 \([x]\)로 쓰기도 합니다. |
| \(\bmod\) | 모드 | 나눗셈의 나머지를 나타내는 기호입니다. \(21 \bmod 7 = 0\)(21을 7로 나눈 나머지는 0)처럼 씁니다. |
| \(d\) | 디 | 연중 일수입니다. 그해 1월 1일부터 세어 며칠째인지를 나타냅니다. 2026년 7월 4일이라면 \(d = 185\)입니다. |
| \(n\) | 엔 | 그해의 몇 번째 그 요일인지를 나타내는 수입니다. 2026년 7월 4일은 그해의 27번째 토요일입니다. |
용어
| 첼러의 공식 | 날짜로 요일을 직접 계산하는 공식입니다(Zeller의 공식, 젤러의 공식이라고도 씁니다). 19세기 독일의 수학자 크리스티안 첼러가 고안했습니다. 달력을 한 장도 보지 않고 곱셈과 ‘7로 나눈 나머지’만으로 요일을 구할 수 있습니다. |
| 그레고리력 | 지금 전 세계에서 쓰는 달력(양력)입니다. 1582년 10월 15일에 로마 교황 그레고리오 13세가 도입했습니다. 한국에서는 음력 1895년 11월 17일을 양력 1896년 1월 1일로 삼아 이날부터 쓰기 시작했습니다. |
| 역산 그레고리력 | 그레고리력의 규칙을 도입일(1582년 10월 15일)보다 앞선 날짜에도 거슬러 적용한 달력입니다(영어로는 proleptic Gregorian calendar). 국제 표준 ISO 8601과, 이 계산기를 포함한 많은 컴퓨터의 날짜 처리가 이 방식을 씁니다. 실제 역사 속 달력(율리우스력 등)과는 날짜나 요일이 어긋날 수 있습니다. |
| 율리우스력 | 그레고리력 이전에 쓰던 달력입니다. 기원전 45년에 율리우스 카이사르가 정했습니다. 4년에 한 번 반드시 윤년을 두는 규칙이었기 때문에 실제 계절과 조금씩 어긋났고, 이 어긋남을 바로잡기 위해 그레고리력으로 바뀌었습니다. |
| 윤년 | 2월 29일이 있는 해(1년이 366일)입니다. 원칙적으로 4년에 한 번이지만, 100으로 나누어떨어지는 해는 평년, 400으로 나누어떨어지는 해는 윤년입니다(2000년은 윤년, 1900년·2100년은 평년). |
| 연중 일수 | 그해 1월 1일부터 세어 며칠째인지를 나타내는 수입니다. 예를 들어 3월 1일은 평년이면 60번째 날, 윤년이면 61번째 날입니다. |
| 요일의 주기 | 요일은 7일마다 한 바퀴 돕니다. 7의 배수인 일수만큼 떨어진 두 날짜는 반드시 같은 요일이 됩니다. |
| 손 없는 날 | 이사나 결혼 날짜를 잡을 때 흔히 따지는, 음력 날짜의 끝자리가 9나 0인 날(음력 9일, 10일, 19일, 20일, 29일, 30일)입니다. 음력 날짜로 정해지므로 월~일의 요일과는 전혀 다른 원리이며, 이 페이지에서는 알 수 없습니다. |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 ‘뜻을 이해하고’ 쓸 수 있도록 미리 알아 두면 좋은 내용을 정리했습니다.
막히는 부분이 있으면 이 표의 내용으로 돌아가 복습하는 것이 지름길입니다.
| 나머지가 있는 나눗셈(초등학교 3학년) |
|
| 달력의 원리(초등학교 2학년) |
|
| 두 자리 수의 곱셈과 버림(초등학교 3~5학년) |
|
| 정수와 유리수(중학교 1학년) |
|
Excel로 계산하는 방법
| 알아볼 날짜 | 2026-07-04 |
| 요일 | =TEXT(B1,"dddd") |
| 알아볼 날짜 | 2026-07-04 |
| 요일 번호(1=일요일~7=토요일) | =WEEKDAY(B1) |
| 알아볼 날짜 | 2026-07-04 |
| 연중 일수 | =B1-DATE(YEAR(B1),1,1)+1 |
| 그해의 날수 | =DATE(YEAR(B1),12,31)-DATE(YEAR(B1),1,1)+1 |
| 남은 일수 | =B3-B2 |
| 알아볼 날짜 | 2026-07-04 |
| 연중 일수 | =B1-DATE(YEAR(B1),1,1)+1 |
| n번째 | =INT((B2-1)/7)+1 |
세 번째·네 번째 표의 답은 연중 일수 185, 그해의 날수 365, 남은 일수 180, n번째 27입니다. 뺄셈 결과가 ‘1900-07-03’ 같은 날짜로 표시되면 셀 서식을 ‘일반’으로 바꾸세요.
Excel의 날짜는 1900년 1월 1일 이후만 다룰 수 있습니다. 그보다 이전 날짜는 이 페이지의 계산기나 Python을 이용하세요.
Google 스프레드시트로 계산하는 방법
| 알아볼 날짜 | 2026-07-04 |
| 요일 | =TEXT(B1,"dddd") |
| 알아볼 날짜 | 2026-07-04 |
| 요일 번호(1=일요일~7=토요일) | =WEEKDAY(B1) |
| 알아볼 날짜 | 2026-07-04 |
| 연중 일수 | =B1-DATE(YEAR(B1),1,1)+1 |
| 그해의 날수 | =DATE(YEAR(B1),12,31)-DATE(YEAR(B1),1,1)+1 |
| 남은 일수 | =B3-B2 |
| 알아볼 날짜 | 2026-07-04 |
| 연중 일수 | =B1-DATE(YEAR(B1),1,1)+1 |
| n번째 | =INT((B2-1)/7)+1 |
뺄셈 결과가 날짜로 표시되면 메뉴의 ‘서식 → 숫자 → 숫자’로 숫자 표시로 바꿀 수 있습니다.
Python으로 계산하는 방법
import datetime
year, month, day = 2026, 7, 4 # 알아볼 날짜
# --- 방법 1: 표준 라이브러리 datetime 사용 ---
target_date = datetime.date(year, month, day)
weekday_names = ['월요일', '화요일', '수요일', '목요일', '금요일', '토요일', '일요일']
weekday_name = weekday_names[target_date.weekday()]
print(f"{year}년 {month}월 {day}일의 요일: {weekday_name}")
day_of_year = target_date.timetuple().tm_yday # 연중 일수
days_in_year = datetime.date(year, 12, 31).timetuple().tm_yday # 그해의 날수
print(f"그해의 {day_of_year}번째 날({days_in_year}일 중), 남은 날 {days_in_year - day_of_year}일")
nth = (day_of_year - 1) // 7 + 1 # 그해의 몇 번째 그 요일인지
print(f"그해의 {nth}번째 {weekday_name}")
# --- 방법 2: 첼러의 공식 사용 ---
q, m, y = day, month, year
if m <= 2: # 1월과 2월은 전년도의 13월·14월로 계산
m += 12
y -= 1
K, J = y % 100, y // 100
h = (q + 13 * (m + 1) // 5 + K + K // 4 + J // 4 - 2 * J) % 7
zeller_names = ['토요일', '일요일', '월요일', '화요일', '수요일', '목요일', '금요일']
print(f"첼러의 공식으로 구한 요일: {zeller_names[h]}")
LaTeX 등 수식 언어로 쓰는 법(복사 가능)
h = (q + ⌊13(m + 1)/5⌋ + K + ⌊K/4⌋ + ⌊J/4⌋ − 2J) mod 7
h = \left( q + \left\lfloor \frac{13(m+1)}{5} \right\rfloor + K + \left\lfloor \frac{K}{4} \right\rfloor + \left\lfloor \frac{J}{4} \right\rfloor - 2J \right) \bmod 7
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>h</mi><mo>=</mo>
<mrow>
<mo>(</mo>
<mi>q</mi><mo>+</mo>
<mrow><mo>⌊</mo><mfrac><mrow><mn>13</mn><mo>(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mn>5</mn></mfrac><mo>⌋</mo></mrow>
<mo>+</mo><mi>K</mi>
<mo>+</mo><mrow><mo>⌊</mo><mfrac><mi>K</mi><mn>4</mn></mfrac><mo>⌋</mo></mrow>
<mo>+</mo><mrow><mo>⌊</mo><mfrac><mi>J</mi><mn>4</mn></mfrac><mo>⌋</mo></mrow>
<mo>−</mo><mn>2</mn><mo>⁢</mo><mi>J</mi>
<mo>)</mo>
</mrow>
<mspace width="0.3em"/><mo>mod</mo><mspace width="0.3em"/><mn>7</mn>
</mrow>
</math>
h = (q + floor(13(m + 1)/5) + K + floor(K/4) + floor(J/4) - 2J) mod 7
h = Mod[q + Floor[13 (m + 1)/5] + K + Floor[K/4] + Floor[J/4] - 2 J, 7]
h := (q + floor(13*(m + 1)/5) + K + floor(K/4) + floor(J/4) - 2*J) mod 7;
h = mod(q + floor(13*(m + 1)/5) + K + floor(K/4) + floor(J/4) - 2*J, 7);
h = (q + ⌊13(m + 1)/5⌋ + K + ⌊K/4⌋ + ⌊J/4⌋ - 2J) mod 7
n = ⌊(d − 1)/7⌋ + 1
n = \left\lfloor \frac{d - 1}{7} \right\rfloor + 1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>n</mi><mo>=</mo>
<mrow><mo>⌊</mo><mfrac><mrow><mi>d</mi><mo>−</mo><mn>1</mn></mrow><mn>7</mn></mfrac><mo>⌋</mo></mrow>
<mo>+</mo><mn>1</mn>
</mrow>
</math>
n = floor((d - 1)/7) + 1
n = Floor[(d - 1)/7] + 1
n := floor((d - 1)/7) + 1;
n = floor((d - 1)/7) + 1;
n = ⌊(d - 1)/7⌋ + 1
365 = 7 × 52 + 1, 366 = 7 × 52 + 2
365 = 7 \times 52 + 1, \quad 366 = 7 \times 52 + 2
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mn>365</mn><mo>=</mo>
<mn>7</mn><mo>×</mo><mn>52</mn><mo>+</mo><mn>1</mn>
<mo>,</mo><mspace width="0.7em"/>
<mn>366</mn><mo>=</mo>
<mn>7</mn><mo>×</mo><mn>52</mn><mo>+</mo><mn>2</mn>
</mrow>
</math>
365 = 7 xx 52 + 1, 366 = 7 xx 52 + 2
QuotientRemainder[365, 7]
iquo(365, 7); irem(365, 7);
q = floor(365/7); r = mod(365, 7);
365 = 7 × 52 + 1
ChatGPT 에게 물어서 계산하는 방법
당신은 날짜 계산 도우미입니다. 다음 계산은 반드시 Python 코드를 실제로 실행해서 하고, 실행 결과의 숫자만을 근거로 답해 주세요(암산이나 추측으로 답하지 마세요). 2026년 7월 4일에 대해 다음을 구해 주세요. 1. 요일 2. 그해의 몇 번째 날인지, 12월 31일까지 남은 일수 3. 그해의 몇 번째 그 요일인지(그 요일이 1년에 모두 몇 번 있는지도) 계산에 사용한 코드와 실행 결과의 숫자를 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다