Datez 3.1.1

Datez 3.1.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2019年3月
SPM支持SPM

mazyod 维护。



Datez 3.1.1

Datez📆

通过日期、日期组件和时间段轻松处理日期

Version Version Swift Platforms Carthage

突出显示

  • 仅包含两个自定义结构体 (值类型大受欢迎!)

    • DateView: 与 Calendar 关联的 Date
    • CalendarComponents: 类似于 DateComponents,但与 Calendar 无关。
  • 完全没有硬编码
    目前唯一需要硬编码的情况是通过将值设置为 01 来清除日期组件。没有这样的壁纸
    minutes = seconds * 60.

  • 模块化组合设计
    仅在一种方式下实现某个功能,而不是在到处复制粘贴代码,造成大量令人头疼的问题。

功能

您可以在框架附带的游戏场中使用它们!

快速且明确地访问日期组件

let someDate = Date()
let currentCalendar = someDate.currentCalendar.components.year
let gregorianDay = someDate.gregorian.components.day
let hijriMonth = someDate.islamicCivil.components.month

简单且简练的日期操作

let date = Date()
let gregorianDate = date.gregorian

// Adding components
let tomorrow = gregorianDate + 1.day

// Relative accessors
let firstThingTomorrow = tomorrow.beginningOfDay

// Easy tweaking
let firstThingTomorrowButIn1984 = firstThingTomorrow.update(year: 1984)

// now, lets get the date
let newDate = firstThingTomorrowButIn1984.date

便捷的日期操作符

// Just calling timeIntervalSinceDate
let difference = Date(timeIntervalSinceNow: 5.minutes.timeInterval) - Date()

// Just calling dateByAddingTimeInterval
let afterFiftyHours = Date() + 50.hours.timeInterval

// Just calling compare:
let compareResult = Date(timeIntervalSinceNow: 8.hours.timeInterval) < Date()

(额外奖励):持续时间
将其标记为额外奖励,因为它在精确计算方面并不是很理想,但在需要便利时非常有用。例如,设置过期间隔和从 TimeInterval 估计组件。

// Easily access TimeInterval to construct durations
let expirationInterval = 300.days.timeInterval

// Convert back to a single date component
let months = expirationInterval.totalMonths // 9

// Or multiple components
let components = expirationInterval.components
// components ≈ CalendarComponents(day: 6, month: 9)

开始使用

Carthage

Carthage 已完全支持。只需将以下行添加到您的 Cartfile

github "SwiftKitz/Datez" ~> 3.1

CocoaPods

CocoaPods 已完全支持。只需将以下行添加到您的 Podfile

pod 'Datez'

子模块

对于手动安装,您可以直接抓取源代码或通过Git子模块,然后简单地将

  • 将 `Datez.xcodeproj` 文件作为子项目添加(确保未启用 Copy resources
  • 转到您的根项目设置。在“嵌入式二进制文件”下,单击“+”按钮并选择 `Datez.framework

动机

本框架没有重新发明苹果已经构建的任何东西。在底层,它利用 DateCalendarDateComponents 类来完成所有工作。它只是试图简化 Swift 开发者的 API。就这样。

在使用 RealmSwift 和 SwiftyJSON 亲身体验了使用优秀的 Swift API 的感受之后,我开始相信简洁的 Swift API 的重要性,以及它对我们生产力和压力水平的影响。

其他日期库有什么问题?

假设底层 Calendar...:
我需要明确选择公历和伊斯兰教规,所以已经整合。

错误的日期计算:
我看到的框架大多数都对一个月中的天数的数量做出了假设,或者硬编码小时数...等等。

作者

Mazyod (@Mazyod)

许可

Datez 以 MIT 许可发布。有关详细信息,请参阅 LICENSE。