Skip to main content

Pure-Python Japan Public Holiday Generate

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jpholiday-1.0.3.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jpholiday-1.0.3-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file jpholiday-1.0.3.tar.gz.

File metadata

  • Download URL: jpholiday-1.0.3.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.11 Linux/6.11.0-1018-azure

File hashes

Hashes for jpholiday-1.0.3.tar.gz
Algorithm Hash digest
SHA256 d5a56592fd6a7ceb76d49e1c5f1af806223e0d5d6b9e3bc5477860e6605f4cab
MD5 8658310a5e7a963cc53adc5a26b46b61
BLAKE2b-256 5c0c1178e0d55e66362c6f2e715aa1665b032be71bf9b9c80a9fe83238d33c81

See more details on using hashes here.

File details

Details for the file jpholiday-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: jpholiday-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.11 Linux/6.11.0-1018-azure

File hashes

Hashes for jpholiday-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 abe5f0191f27a88623a33aaaa7cd04035886b5d7adb41a42eaeba0e721dc1982
MD5 d4e0880bedf9fd6d1dd2217dc6856cdb
BLAKE2b-256 11e9af0b8cda67530d7ff3d937b785c7901041e38a955b6b66e3c9a23a0d2027

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page