Build Status Carthage compatible Swift Package Manager compatible

感谢 Matthew York社区 提供的精彩库。您可以在这里找到原始的仓库/文档。创建此软件包是因为我需要 Carthage 的支持,并区分 Swift 和 Objective-C 的实现。 Swift ABI 尚未稳定(目前),我不想每次新 Swift 版本发布时都花时间重新编译二进制文件。 Objective-C API 工作得非常好。

这是原始仓库的硬分叉。 这意味着不能保证代码库将完全反映原始仓库。

如何在 Objective-C 中检查两个日期范围是否重叠? 使用 DateTools 非常容易。

// Just example.
DTTimePeriod *periodA = [[DTTimePeriod alloc] initWithStartDate:request.startDate endDate:request.endDate];
DTTimePeriod *periodB = [[DTTimePeriod alloc] initWithStartDate:requestB.startDate endDate:requestB.endDate];
//Magic here
if ([periodA overlapsWith:periodB]) {
    NSLog(@"Is it cool?");
}

与 Swift Package Manager 一起使用

.package(url: "https://github.com/3a4oT/DateToolsObjC", .upToNextMajor(from: "1.0.5"))

如何与 Carthage 一起使用:

我可以在 Swift 中使用它吗?

嗯,严格来说是可以的。 但是...=) 它适用于 NSDate,但不适用于开箱即用的 Date。 你会问为什么? 简单来说 - NSDateDate 是两种不同的类型更多信息)。 不要被你可能听到的其他事情所困扰,那是不同的。 到目前为止,您有3 种选择

  1. 检出原始仓库并使用 Swift API。
  2. 将 Date 强制转换为 NSDate,然后再强制转换回来
    import DateToolsObjC
    
    let today: NSDate = Date() as NSDate
    //usage in DateToolsAPI return NSDate cast back if you need.
    let result: Date = today.timeAgo() as Date
  3. 我最喜欢的方式 - 只是在需要的 DateToolsObjC API 下创建一个 Swift Extension,它会将 NSDate 转换为 Date

MIT 许可证

版权所有 (c) 2017 Petro Rovenskyi

特此授予任何人免费获得本软件及相关文档文件(“软件”)副本的权利,以处理本软件,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向其提供本软件的人员遵守以下条件

以上版权声明和本许可声明应包含在本软件的所有副本或主要部分中。

本软件按“原样”提供,不作任何形式的明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼还是其他诉讼中,无论是由软件或本软件的使用或其他交易引起的、与之相关的还是由此产生的。