🎌 Japanese holiday for Swift
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
Sources/HolidayJp
Tests
holiday_jp @ cca1d08
scripts
.editorconfig
.gitignore
.gitmodules
.swift-version
.travis.yml
HolidayJp.podspec
LICENSE
Package.swift
README.md

README.md

holiday_jp Swift

Build Status CircleCI CocoaPods Compatible Carthage Compatible Platform

🎌 Japanese holiday for Swift

Requirements

  • Swift 4

Installing

CocoaPods

pod 'HolidayJp', '~> 0.1'

Carthage

github 'holiday-jp/holiday_jp-swift' ~> 0.1

Swift Package Manager

.Package(url: "https://github.com/holiday-jp/holiday_jp-swift.git", majorVersion: 0, minor: 1),

Example

import HolidayJp

let today = Date()
if HolidayJp.isHoliday(today) {
    print("Today is a holiday!")
}

API

class HolidayJp

HolidayJp.isHoliday(_: Date) -> Bool

Judge whether it is a holiday in Japan. If a date is holiday, return true.

let today = Date()
if HolidayJp.isHoliday(today) {
    print("Today is a holiday!")
}

HolidayJp.isHoliday(_: Date, calendar: Calendar) -> Bool

Judge whether it is a holiday in Japan. If a date is holiday, return true. calendar is used to compute YYYY-MM-DD.

let calendar = Calendar(identifier: .iso8601)
let today = Date()

if HolidayJp.isHoliday(today, calendar: calendar) {
    print("Today is a holiday!")
}

HolidayJp.isHoliday(year: Int, month: Int: day: Int) -> Bool

Judge whether it is a holiday in Japan. If a date is holiday, return true.

if HolidayJp.isHoliday(year: 2018, month: 12, day: 1) {
    print("2018/12/01 is a holiday!")
}

HolidayJp.between(_: Date, and: Date) -> [Holiday]

Return all holidays in period.

let calendar = Calendar(identifier: .iso8601)
let date1 = calendar.date(from: DateComponents(year: 2017, month: 1, day: 1))!
let date2 = calendar.date(from: DateComponents(year: 2017, month: 1, day: 31))!

// Show all holidays in 2017/01/01 ~ 2017/1/31
let holidays = HolidayJp.between(date1, and: date2)
for holiday in holidays {
    print(holiday.ymd)
}

HolidayJp.between(_: Date, and: Date, calendar: Calendar) -> [Holiday]

Return all holidays in period. calendar is used to compute YYYY-MM-DD.

let calendar = Calendar(identifier: .iso8601)
let date1 = calendar.date(from: DateComponents(year: 2017, month: 1, day: 1))!
let date2 = calendar.date(from: DateComponents(year: 2017, month: 1, day: 31))!

// Show all holidays in 2017/01/01 ~ 2017/1/31
let holidays = HolidayJp.between(date1, and: date2, calendar: calendar)
for holiday in holidays {
    print(holiday.ymd)
}

struct Holiday

Holiday struct represents holiday data.

let calendar = Calendar(identifier: .iso8601)
let date = calendar.date(from: DateComponents(year: 2014, month: 9, day: 23))!
let holiday = HolidayJp.between(date, and: date).first!

print(holiday.ymd)    // "2015-09-23"
print(holiday.week)   // "火"
print(holiday.weekEn) // "Tuesday"
print(holiday.name)   // "秋分の日"
print(holiday.nameEn) // "Autumnal Equinox Day"
print(holiday.date()) // Date(2015-09-23 15:00:00 +0000)

For developer

Development

Please create Xcode project with Swift Package Manager, and open it.

$ swift package generate-xcodeproj
$ open HolidayJp.xcodeproj

And also, please run ruby script to re-generate holidays definitions.

$ ./scripts/generate.rb

Test

$ swift test

Publish to CocoaPods

$ pod lib lint
$ pod trunk push

See also

License

MIT © Pine Mizune