2026년 공휴일은 미국 11일, 영국 14일, 일본 18일, 독일 9일, 인도네시아 17일이며, 5개국 모두에서 날짜가 같은 공휴일은 1월 1일뿐입니다. 국가 코드를 순회하며 국가와 연도별로 한 번씩 요청한 다음, 공휴일 날짜별로 국가를 모아 캘린더를 비교하세요.
API 사용 방법
- 키 발급 및 환경 변수 설정 회원가입에서 무료 키를 발급받아
NARWHAL_API_KEY환경 변수에 저장하세요. 스크립트는 해당 변수를 읽고Authorization: Bearer YOUR_KEY로 키를 전송하므로 Python을 실행할 환경에 설정하세요. - 국가와 연도 선택
GET /v1/calendars/holidays/{country}/{year}에는 ISO 3166 alpha-3 국가 코드를 사용하며, 예시에서는 2026년의USA,GBR,JPN,DEU,IDN을 요청합니다. 국가와 연도별로 별도의 요청이 필요하므로 이 비교에는 5번의 요청이 사용되며, 비교할 국가의 연도는 동일하게 유지하세요. - 날짜별로 국가 모으기 Python 스크립트를 실행해 각 국가의 공휴일을 요청하고 응답 항목을
date별로 묶어 날짜마다 국가 코드 집합을 만드세요. 스크립트는 날짜를 정렬해 최소 3개국이 공유하는 날짜를 출력한 다음, 공통 날짜 출력에 나오지 않는 날짜까지 포함한 전체 데이터에서 국가별 고유 날짜 수를 계산합니다.import os from collections import defaultdict import requests HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"} COUNTRIES = ["USA", "GBR", "JPN", "DEU", "IDN"] by_date = defaultdict(set) for country in COUNTRIES: r = requests.get(f"https://api.narwhalapi.com/v1/calendars/holidays/{country}/2026", params={"scope": "national_public"} if country == "IDN" else None, headers=HEADERS, timeout=10) r.raise_for_status() for h in r.json()["holidays"]: by_date[h["date"]].add(country) for day in sorted(by_date): if len(by_date[day]) >= 3: print(day, sorted(by_date[day])) print({c: sum(1 for d in by_date.values() if c in d) for c in COUNTRIES}) - 공통 날짜와 국가별 합계 확인 2026년의 공통 날짜 출력에는 1월 1일, 4월 3일, 5월 25일, 12월 25일이 포함되며, 마지막 줄에는 국가별 고유 날짜 합계가 나옵니다. 이 합계는 미국의
federal_government범위, 영국의bank범위, 일본과 독일의national_public범위를 사용하며, 인도네시아 요청에서는national_public을 명시적으로 선택합니다.
공통 날짜의 국가 목록과 공휴일 이름은 구분해서 확인하세요. 2026년 5월 25일은 독일, 영국, 미국의 공통 공휴일 날짜이며, 미국에서는 전몰장병 추모일입니다. 스크립트는 날짜별로 묶으므로 국가마다 공휴일 이름이 같을 필요는 없습니다. 2026년 4월 3일에는 독일, 영국, 인도네시아에 성금요일이 있으므로 이 날짜도 공통 날짜 기준을 충족합니다. 해당 국가 목록에는 DEU, GBR, IDN이 포함됩니다.
스프레드시트 또는 코드 없이 계산
스크립트 없이 날짜를 비교하려면 각 국가의 공휴일 캘린더 페이지 (영어)를 여세요. 스프레드시트에서 비교하려면 국가별 날짜를 각각의 열에 붙여넣고, 같은 국가 안에서 날짜가 중복되지 않도록 하세요. 비교할 날짜는 A2에, 다른 국가의 날짜 목록은 B:E 열에 넣으세요.
=COUNTIF(B:E, A2)수식은 다른 국가의 열에서 날짜가 일치하는 셀 수를 계산합니다. A열에 목록이 있는 국가는 이미 A2의 날짜에 반영되어 있으므로, 수식 결과는 시트의 다른 열에서 일치한 수로 읽으세요. 일치한 날짜가 어느 캘린더에 속하는지 확인할 수 있도록 국가별 날짜를 한데 모아 붙여넣으세요. A열에서 비교할 날짜 옆에 수식을 복사하세요. 수식은 다른 열에서 같은 날짜를 검색하므로 각 목록의 행 위치가 같을 필요는 없으며, 각 결과는 해당 행의 날짜와 함께 확인하세요.
상황별 계산 방법
| 상황 | 적합한 방법 | 이유 |
|---|---|---|
| 2개국 또는 3개국을 한 번 비교 | 캘린더 페이지 | 각 국가의 공휴일 날짜를 직접 확인 |
| 팀 캘린더 작성 또는 여러 사무소의 급여 처리 | 국가별로 매년 한 번 실행하는 스크립트 | 날짜별로 국가를 모으고 고유 날짜 수 계산 |
| 일부 지역만 포함 | 응답의 subdivision_codes로 필터링 | 비교에 필요한 행정구역 선택 |
영국의 행 수가 두 배인 이유는 무엇인가요?
은행 공휴일은 구성국마다 다르므로 각 날짜가 행정구역 그룹별로 한 번씩 나옵니다. 2026년 영국 응답에는 잉글랜드와 웨일스, 북아일랜드, 스코틀랜드의 행이 따로 있어 원본 행이 28개지만, 통합 캘린더의 고유 날짜는 14개입니다. 국가의 고유 날짜 합계가 필요하면 날짜를 집합에 모으세요.
지역별 캘린더를 만들려면 날짜를 모으기 전에 응답의 subdivision_codes로 해당 항목을 선택하세요. 그러면 지역 선택과 고유 날짜 수 계산을 구분할 수 있습니다.
공동 휴가일은 어떻게 제외하나요?
인도네시아에서 쿠티 베르사마라고 하는 공동 휴가일을 제외하려면 scope=national_public을 전달하세요. 2026년에는 이 조건으로 선택한 고유 공휴일 날짜가 17개이며, 필터 없는 응답에는 collective_leave 항목도 포함되어 행이 25개입니다. 이 비교에서는 인도네시아 요청에 범위 매개변수를 넣으세요.
날짜를 통합 데이터에 추가하기 전에 범위를 적용하세요. 그렇지 않으면 공통 날짜를 비교하거나 국가의 공휴일 수를 계산할 때 인도네시아 항목에 공동 휴가가 포함됩니다.
국가마다 주말 공휴일을 같은 방식으로 계산하나요?
아니요, 각 국가의 목록은 해당 국가가 정한 날짜를 사용합니다. 일부 국가는 공휴일을 평일로 옮기고 observed로 표시합니다. 모든 국가의 주말 공휴일을 하나의 규칙으로 옮기지 말고, 대체 휴일 날짜가 있으면 이를 포함해 응답의 날짜를 비교에 사용하세요.
실습 예시: 2026년 12월 25일
2026년 12월 25일부터 시작해 각 국가에서 선택한 공휴일 목록에 해당 날짜가 있는지 확인하세요. 독일, 영국, 인도네시아, 미국은 각각 국가 코드 하나를 추가하며, 일본은 해당 날짜에 공휴일이 없습니다. 응답에 해당 날짜의 지역별 행이 따로 있어도 일치하는 국가는 한 번만 계산하세요.
| 국가 | 코드 | 2026년 12월 25일의 공휴일 여부 |
|---|---|---|
| 독일 | DEU | 예 |
| 영국 | GBR | 예 |
| 인도네시아 | IDN | 예 |
| 미국 | USA | 예 |
| 일본 | JPN | 아니요 |
| 합계 | DEU, GBR, IDN, USA | 5개국 중 4개국 |
2026년 12월 25일의 고유 국가 코드를 세면 5개국 중 4개국이 나옵니다. 최소 3개국이 공유하는 날짜이므로 스크립트 출력에 포함됩니다. 비교하면, 2026년 1월 1일에는 5개국의 국가 코드가 모두 있으며 2026년에 5개국 모두가 공유하는 유일한 날짜입니다.
에 게시되었습니다.
다음 단계
무료 키를 만들고 직접 작성한 코드에서 API를 호출하세요. 무료 API 키 받기
