JustTime 是一个轻量级的 Swift 库,它提供了独立于日期的时间和持续时间类型。
该库包含三种主要类型:Time、TimeRange 和 Duration。
该库几乎完全经过测试,代码覆盖率达到 94.2%
要使用 Swift Package Manager 将 JustTime 添加到您的项目中,请在您的 Package.swift 文件中添加以下依赖项
dependencies: [
.package(url: "https://github.com/ChristianFox/JustTime.git", from: "1.0.0")
]
不要忘记将 JustTime 添加到您的目标依赖项中
targets: [
.target(
name: "YourTarget",
dependencies: ["JustTime"]),
]
创建一个新的 Time 实例
let time = Time(hour: 14, minute: 30, second: 45) // 14:30:45
let midnight = Time() // 00:00:00
从 Date 创建一个 Time 实例
let now = Date()
let currentTime = try Time(fromDate: now)
将 Time 实例四舍五入到若干分钟
let time = Time(hour: 14, minute: 20)
let newTime = time.roundedToNearest(minutes: 30) // 14:30
将 TimeInterval 添加到 Time 实例
let time = Time(hour: 14, minute: 30)
let newTime = time.adding(3600) // Adds 1 hour, 15:30
从 Time 实例中减去 TimeInterval
let time = Time(hour: 14, minute: 30)
let newTime = time.subtracting(3600) // Subtracts 1 hour, 13:30
计算 Time 实例和稍后时间之间的持续时间
let startTime = Time(hour: 9, minute: 0)
let endTime = Time(hour: 17, minute: 0)
let duration = startTime.duration(tillLaterTime: endTime) // Duration of 8 hours
如果我们使用比接收者值低的“稍后时间”调用该函数,则参数晚于接收者的声明被认为是正确的,因此 timeB
必须表示前一天的时间,结果为 16 小时。
let timeA = Time(hour: 9, minute: 0)
let timeB = Time(hour: 17, minute: 0)
let duration = timeB(tillLaterTime: timeA) // Duration of 16 hours
创建一个新的 TimeRange 实例
let workHours = TimeRange(start: Time(hour: 9), end: Time(hour: 17))
检查 Time 实例是否包含在 TimeRange 中
let time = Time(hour: 12)
let isWithinRange = workHours.contains(time) // true
检查两个 TimeRange 实例是否重叠
let lunchBreak = TimeRange(start: Time(hour: 12), end: Time(hour: 13))
let meeting = TimeRange(start: Time(hour: 11, minute: 30), end: Time(hour: 12, minute: 30))
let hasOverlap = lunchBreak.overlaps(meeting) // true
将 TimeRange 拆分为更小的 TimeRange
let workHours = TimeRange(start: Time(hour: 9), end: Time(hour: 17))
let hourlySlots = workHour.split(by: 60) // An array of 8 TimeRanges
创建一个新的 Duration
let duration = Duration(hours: 1, minutes: 1, seconds: 1) // 01:01:01
let zero = Duration() // 00:00:00
let normalised = Duration(hours: 0, minutes: 175, seconds: 300) // 03:00:00
将 Duration 添加到另一个
let a = Duration(hours: 1, minutes: 1, seconds: 1)
let b = Duration(hours: 10, minutes: 10, seconds: 10)
let c = a + b // 11:11:11
从另一个 Duration 中减去 Duration
let a = Duration(hours: 100, minutes: 30, seconds: 20)
let b = Duration(hours: 10, minutes: 10, seconds: 10)
let c = b - a // 90:20:10
请打开一个 issue以获得支持。
欢迎提交 pull request。 我欢迎所有技能水平的开发人员帮助改进库、修复错误或添加新功能。
对于重大更改,请先打开一个 issue 讨论您想要更改的内容。
在提交 pull request 之前,请确保您的代码符合现有的代码样式和规范,并且所有测试均已通过。 此外,如果您添加新功能,请务必包含单元测试来验证行为。
如果您有任何问题或需要帮助,请随时打开一个 issue,我会尽力帮助您。
JustTime 在 MIT 许可下可用。 有关更多信息,请参阅 LICENSE 文件。