JPHoliday
このライブラリは、内閣府
が公表しているデータを基に、日本の国民の祝日を簡単に取得できるようにしたものです。
2026年までの祝日は公式発表された内容に基づいて動作確認済みです。
それ以降についても取得は可能ですが、内閣府からの正式な公表がないため、正確性は保証されません。
Installation
pip install jpholiday
Class
指定日の祝日名を取得
from jpholiday import JPHoliday
import datetime
jpholiday = JPHoliday()
jpholiday.holidays(datetime.date(2017, 1, 1))
> [
Holiday(
date=datetime.date(2017, 1, 1),
name='元日'
)
]
jpholiday.holidays(datetime.date(2017, 1, 2))
> [
Holiday(
date=datetime.date(2017, 1, 2),
name='元日 振替休日'
)
]
jpholiday.holidays(datetime.date(2017, 1, 3))
> []
指定日が祝日か判定
from jpholiday import JPHoliday
import datetime
jpholiday = JPHoliday()
# datetime.date
jpholiday.is_holiday(datetime.date(2017, 1, 1))
> True
jpholiday.is_holiday(datetime.date(2017, 1, 2))
> True
jpholiday.is_holiday(datetime.date(2017, 1, 3))
> False
# datetime.datetime
jpholiday.is_holiday(datetime.datetime(2017, 1, 1, 1, 1, 1))
> True
jpholiday.is_holiday(datetime.datetime(2017, 1, 2, 1, 1, 1))
> True
jpholiday.is_holiday(datetime.datetime(2017, 1, 3, 1, 1, 1))
> False
指定年の祝日を取得
from jpholiday import JPHoliday
import datetime
jpholiday = JPHoliday()
jpholiday.year_holidays(2017)
> [
Holiday(
date=datetime.date(2017, 1, 1),
name='元日'
),
Holiday(
date=datetime.date(2017, 1, 2),
name='元日 振替休日'
),
...
]
指定月の祝日を取得
from jpholiday import JPHoliday
import datetime
jpholiday = JPHoliday()
jpholiday.month_holidays(2017, 5)
> [
Holiday(
date=datetime.date(2017, 5, 3),
name='憲法記念日'
),
Holiday(
date=datetime.date(2017, 5, 4),
name='みどりの日'
),
Holiday(
date=datetime.date(2017, 5, 5),
name='こどもの日'
)
]
指定範囲の祝日を取得
from jpholiday import JPHoliday
import datetime
jpholiday = JPHoliday()
# datetime.date
jpholiday.between(datetime.date(2017, 1, 1), datetime.date(2017, 5, 3))
> [
Holiday(
date=datetime.date(2017, 1, 1),
name='元日'
),
Holiday(
date=datetime.date(2017, 1, 2),
name='元日 振替休日'
),
...
]
# datetime.datetime
jpholiday.between(datetime.datetime(2017, 1, 1, 3, 15, 0), datetime.datetime(2017, 5, 3, 12, 30, 12))
> [
Holiday(
date=datetime.date(2017, 1, 1),
name='元日'
),
Holiday(
date=datetime.date(2017, 1, 2),
name='元日 振替休日'
),
...
]
独自の休日を追加
from jpholiday import JPHoliday, OriginalHolidayCheckerInterface
import datetime
jpholiday = JPHoliday()
class TestHoliday(OriginalHolidayCheckerInterface):
def is_holiday(self, date):
if date == datetime.date(2020, 2, 9):
return True
return False
def holiday_name(self, date):
return '特別休暇'
jpholiday.register(TestHoliday())
jpholiday.holidays(datetime.date(2020, 2, 9))
> [
Holiday(
date=datetime.date(2020, 2, 9),
name='特別休暇'
)
]
jpholiday.is_holiday(datetime.date(2020, 2, 9))
> True
独自の休日を削除
from jpholiday import JPHoliday, OriginalHolidayCheckerInterface
import datetime
jpholiday = JPHoliday()
class TestHoliday(OriginalHolidayCheckerInterface):
def is_holiday(self, date):
if date == datetime.date(2020, 2, 9):
return True
return False
def holiday_name(self, date):
return '特別休暇'
jpholiday.unregister(TestHoliday())
jpholiday.holidays(datetime.date(2020, 2, 9))
> []
jpholiday.is_holiday(datetime.date(2020, 2, 9))
> False
Functions
指定日の祝日名を取得
import jpholiday
import datetime
# datetime.date
jpholiday.is_holiday_name(datetime.date(2017, 1, 1))
> '元日'
jpholiday.is_holiday_name(datetime.date(2017, 1, 2))
> '元日 振替休日'
jpholiday.is_holiday_name(datetime.date(2017, 1, 3))
> None
# datetime.datetime
jpholiday.is_holiday_name(datetime.datetime(2017, 1, 1, 1, 1, 1))
> '元日'
jpholiday.is_holiday_name(datetime.datetime(2017, 1, 2, 1, 1, 1))
> '元日 振替休日'
jpholiday.is_holiday_name(datetime.datetime(2017, 1, 3, 1, 1, 1))
> None
指定日が祝日か判定
import jpholiday
import datetime
# datetime.date
jpholiday.is_holiday(datetime.date(2017, 1, 1))
> True
jpholiday.is_holiday(datetime.date(2017, 1, 2))
> True
jpholiday.is_holiday(datetime.date(2017, 1, 3))
> False
# datetime.datetime
jpholiday.is_holiday(datetime.datetime(2017, 1, 1, 1, 1, 1))
> True
jpholiday.is_holiday(datetime.datetime(2017, 1, 2, 1, 1, 1))
> True
jpholiday.is_holiday(datetime.datetime(2017, 1, 3, 1, 1, 1))
> False
指定年の祝日を取得
import jpholiday
jpholiday.year_holidays(2017)
> [(datetime.date(2017, 1, 1), '元日'),
(datetime.date(2017, 1, 2), '元日 振替休日'),
(datetime.date(2017, 1, 9), '成人の日'),
(datetime.date(2017, 2, 11), '建国記念の日'),
(datetime.date(2017, 3, 20), '春分の日'),
(datetime.date(2017, 4, 29), '昭和の日'),
(datetime.date(2017, 5, 3), '憲法記念日'),
(datetime.date(2017, 5, 4), 'みどりの日'),
(datetime.date(2017, 5, 5), 'こどもの日'),
(datetime.date(2017, 7, 17), '海の日'),
(datetime.date(2017, 8, 11), '山の日'),
(datetime.date(2017, 9, 18), '敬老の日'),
(datetime.date(2017, 9, 23), '秋分の日'),
(datetime.date(2017, 10, 9), '体育の日'),
(datetime.date(2017, 11, 3), '文化の日'),
(datetime.date(2017, 11, 23), '勤労感謝の日'),
(datetime.date(2017, 12, 23), '天皇誕生日')]
指定月の祝日を取得
import jpholiday
jpholiday.month_holidays(2017, 5)
> [(datetime.date(2017, 5, 3), '憲法記念日'),
(datetime.date(2017, 5, 4), 'みどりの日'),
(datetime.date(2017, 5, 5), 'こどもの日')]
指定範囲の祝日を取得
import jpholiday
import datetime
# datetime.date
jpholiday.between(datetime.date(2017, 1, 1), datetime.date(2017, 5, 3))
> [(datetime.date(2017, 1, 1), '元日'),
(datetime.date(2017, 1, 2), '元日 振替休日'),
(datetime.date(2017, 1, 9), '成人の日'),
(datetime.date(2017, 2, 11), '建国記念の日'),
(datetime.date(2017, 3, 20), '春分の日'),
(datetime.date(2017, 4, 29), '昭和の日'),
(datetime.date(2017, 5, 3), '憲法記念日')]
# datetime.datetime
jpholiday.between(datetime.datetime(2017, 1, 1, 3, 15, 0), datetime.datetime(2017, 5, 3, 12, 30, 12))
> [(datetime.date(2017, 1, 1), '元日'),
(datetime.date(2017, 1, 2), '元日 振替休日'),
(datetime.date(2017, 1, 9), '成人の日'),
(datetime.date(2017, 2, 11), '建国記念の日'),
(datetime.date(2017, 3, 20), '春分の日'),
(datetime.date(2017, 4, 29), '昭和の日'),
(datetime.date(2017, 5, 3), '憲法記念日')]
独自の休日を追加
import jpholiday
import datetime
class TestHoliday(jpholiday.OriginalHolidayCheckerInterface):
def is_holiday(self, date):
if date == datetime.date(2020, 2, 9):
return True
return False
def holiday_name(self, date):
return '特別休暇'
jpholiday.register(TestHoliday())
jpholiday.is_holiday_name(datetime.date(2020, 2, 9))
> '特別休暇'
jpholiday.is_holiday(datetime.date(2020, 2, 9))
> True
独自の休日を削除
import jpholiday
import datetime
class TestHoliday(jpholiday.OriginalHolidayCheckerInterface):
def is_holiday(self, date):
if date == datetime.date(2020, 2, 9):
return True
return False
def holiday_name(self, date):
return '特別休暇'
jpholiday.unregister(TestHoliday())
jpholiday.is_holiday_name(datetime.date(2020, 2, 9))
> None
jpholiday.is_holiday(datetime.date(2020, 2, 9))
> False
Release files for jpholiday 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jpholiday-1.0.3.tar.gz | 12.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jpholiday-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.8 kB
Release files / jpholiday-1.0.3.tar.gz
| Download URL | jpholiday-1.0.3.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5a56592fd6a7ceb76d49e1c5f1af806223e0d5d6b9e3bc5477860e6605f4cab
|
|
BLAKE2b-256 checksum How to use checksums |
5c0c1178e0d55e66362c6f2e715aa1665b032be71bf9b9c80a9fe83238d33c81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.13.11 Linux/6.11.0-1018-azure
|
Release files / jpholiday-1.0.3-py3-none-any.whl
| Download URL | jpholiday-1.0.3-py3-none-any.whl |
|---|---|
| Size | 16.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
abe5f0191f27a88623a33aaaa7cd04035886b5d7adb41a42eaeba0e721dc1982
|
|
BLAKE2b-256 checksum How to use checksums |
11e9af0b8cda67530d7ff3d937b785c7901041e38a955b6b66e3c9a23a0d2027
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.13.11 Linux/6.11.0-1018-azure
|