swift - 如何从 Date() 中快速获取一个月中所有 4(或 5)个单独的周?

标签 swift realm

我设法使用 Date() 类型的“nextDate”属性在特定月份获取数据查询。换句话说,查询时,日期在该特定月份内的所有数据都将显示在我的表格 View 上。使用下面的代码并进行一些调整,我还成功地提取了上个月和下个月的数据。

func loadMonthEvents() {
    let date = Date()
    let calendar = Calendar.current

    var beginningOfMonth: Date?
    var endOfMonth: Date?

    beginningOfMonth = calendar.dateInterval(of: .month, for: date)?.start
        endOfMonth = calendar.dateInterval(of: .month, for: date)?.end

    monthEvents = realm.objects(Events.self).filter("nextDate BETWEEN %@", [beginningOfMonth, endOfMonth]).sorted(byKeyPath: "nextDate", ascending: true)
}

现在我希望能够根据月份中的星期分离这些数据。在我的 tableView 中,将有 5 个单独的标题,分别代表第 1 周、第 2 周、第 3 周、第 4 周和第 5 周(如果有)。每个单独的标题将仅显示该周的事件。我尝试在日历中应用 weekOfMonth 但它不起作用。预先感谢您。

最佳答案

您可以通过执行以下操作来获取两个日期的周数范围

let w1 = calendar.dateComponents([.weekOfYear], from: beginningOfMonth!)
print(w1.weekOfYear)

let w2 = calendar.dateComponents([.weekOfYear], from: endOfMonth!)
print(w2.weekOfYear)

然后您可以对每个事件的日期执行相同的操作,将事件分组到特定的周

关于swift - 如何从 Date() 中快速获取一个月中所有 4(或 5)个单独的周?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54361740/

相关文章:

ios - Realm 和 iOS 保留周期

Swift Firebase 按距帖子的距离排序

ios - 使用 MKGeodesicPolyline Swift 3 计算距离将出现错误

arrays - Swift 类型与显式解包类型

json - 如何使用Gson库将RealmResult转换为Json

ios - Realm swift : Update an object inside a closure

swift - 我可以在 Swift 中向 Realm 类添加方法吗?

ios - swift : How to avoid duplicate entries in CoreData for implementation with JSON array?

ios - 将不同的数组合并到另一个数组中

ios - 如何创建在安装应用程序时添加的初始 Realm 对象