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.2.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

jpholiday-1.0.2-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jpholiday-1.0.2.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for jpholiday-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a8070e9558427a208eaed36c57f56560023356f5529f1a792bfd85873721f217
MD5 e6520b9d49775b6d4df1cdee6d7d44ae
BLAKE2b-256 82f9004e6b1940a8e1db08e21c1e6bed939a25dbe187edcdf28f10e14bd08771

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jpholiday-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for jpholiday-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 40ae95057f86198c0949c2b71c04b7c5ba5624af0cbed4e8325bf74d02da2ec5
MD5 d65452f9b033aacd58d075b1b4b14f6f
BLAKE2b-256 ceef8f00f5af139484424fbd0a6d9d73378d7d370379298e8ddde1b50ca0192e

See more details on using hashes here.

Supported by

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