我设法使用 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/