一个 Swift 库,用于检查给定的 Date 是否为特定国家或州的假日。它还可以生成给定年份的假日列表。
请随时查看 SwiftyHolidays 示例,以更好地了解如何使用此库。
Xcode 项目
在 Xcode 中打开您的项目,点击 File > Swift Packages > Add Package Dependency 并输入 https://github.com/MaxHaertwig/SwiftyHolidays.git。
Swift Package
打开 Package.swift 并将该软件包添加到您的项目依赖项中
let package = Package(
...
dependencies: [
...
.package(url: "https://github.com/MaxHaertwig/SwiftyHolidays.git", from: "1.0.0")
]
)
LocalDate
LocalDate 类用于抽象化时间和时区的概念。 LocalDate 可以转换为 Date,反之亦然。
import SwiftyHolidays
let independenceDay = LocalDate(2020, .july, 4)!
>>> independenceDay.isHoliday(in: .unitedStates)
true
>>> independenceDay.isHoliday(in: .germany)
false
let cesarChavezDay = LocalDate(2020, .march, 31)!
>>> cesarChavezDay.isHoliday(in: .unitedStates(state: .california))
true
>>> cesarChavezDay.isHoliday(in: .unitedStates(state: .michigan))
false
let holiday = cesarChavezDay.getHoliday(in: .unitedStates(state: .california))
>>> holiday?.name
"César Chávez Day"
>>> holiday?.date
SwiftyHolidays.LocalDate(year: 2020, month: 3, day: 31)
>>> cesarChavezDay.getHoliday(in: .unitedStates(state: .michigan))
nil
>>> LocalDate.asDate(in: TimeZone(abbreviation: "PST")!)
2020-03-31 07:00:00 +0000
也可以使用 Swift 的 Date 类。相关方法需要一个 TimeZone 来解释日期。如果未指定,将使用给定国家(或州)的默认时区。
import SwiftyHolidays
let independenceDayUTC = Date(timeIntervalSince1970: 1562198400)
>>> independenceDayUTC.isHoliday(in: .unitedStates(state: .california))
false
>>> independenceDayUTC.isHoliday(in: .unitedStates(state: .california), timeZone: TimeZone(abbreviation: "GMT")!)
true
>>> independenceDayUTC.asLocalDate(in: TimeZone(abbreviation: "GMT")!)
SwiftyHolidays.LocalDate(year: 2019, month: 7, day: 4)
>>> independenceDayUTC.asLocalDate(in: TimeZone(abbreviation: "PST")!)
SwiftyHolidays.LocalDate(year: 2019, month: 7, day: 3)
可以初始化 Country 或 CountryWithState 的实例来生成其假日列表。
import SwiftyHolidays
>>> Country.germany.allHolidays(in: 2020)
>>> Country.germany.allHolidays(in: 2020..<2030)
>>> CountryWithState.germany(state: .berlin).allHolidays(in: 2020)
您还可以调用 Country.availableCountries 来获取支持的国家/地区列表。
欢迎提供反馈、问题 和 Pull Requests。
SwiftyHolidays 在 MIT 许可下发布。 有关更多信息,请参见 LICENSE。