Skip to main content

JPHoliday

image image image image image Unittest

image

このライブラリは、内閣府 が公表しているデータを基に、日本の国民の祝日を簡単に取得できるようにしたものです。
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)

Source distribution for jpholiday 1.0.3
File Size Uploaded
jpholiday-1.0.3.tar.gz 12.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jpholiday 1.0.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page