holiday_jp Swift

Build Status CircleCI CocoaPods Compatible Carthage Compatible Platform

🎌 Swift 的日本节假日库

要求

安装

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),

示例

import HolidayJp

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

API

class HolidayJp

HolidayJp.isHoliday(_: Date) -> Bool

判断日期是否为日本节假日。如果是节假日,返回 true

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

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

判断日期是否为日本节假日。如果是节假日,返回 truecalendar 用于计算 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

判断日期是否为日本节假日。如果是节假日,返回 true

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

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

返回指定时间段内的所有节假日。

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]

返回指定时间段内的所有节假日。calendar 用于计算 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 结构体表示节假日数据。

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)

开发者指南

开发

请使用 Swift Package Manager 创建 Xcode 项目并打开。

$ swift package generate-xcodeproj
$ open HolidayJp.xcodeproj

并且,请运行 ruby 脚本以重新生成节假日定义。

$ ./scripts/generate.rb

测试

$ swift test

发布到 CocoaPods

$ pod lib lint
$ pod trunk push

相关链接

许可证

MIT © Pine Mizune