从日期为今天的数组中获取元素
Get elements from array where date is today
我有一个对象数组,其中 属性 是 NSDate 类型的日期。该数组包括未来的日子和过去的日子。
我想从该数组中获取一组元素,其中仅包含今天的日期,而不是过去 24 小时内的日期。
我按降序排列元素(新到旧):
allDashboards.sortInPlace({ [=10=].date!.compare(.date!) == NSComparisonResult.OrderedDescending
我尝试做一个 for 循环,检查日期是否是昨天并在那里剪切数组,但它不起作用,因为它可能没有包含昨天日期的元素:
for dash in allDashboards {
if (NSCalendar.currentCalendar().isDateInYesterday(dash.date!)) {
print(i)
allDashboards.removeRange(Range.init(start: 0, end: i))
break
}
i += 1
}
有没有一种方法可以查看日期是否超过一天而不是日期是否在当天?
您可以使用 NSDateComponents
创建代表可接受范围的开始和结束的日期。这些可以是任何你想要的。
获得这些日期后,您可以创建一个 NSPredicate
匹配 >
开始日期和 <
结束日期。这将为您生成过滤后的数组。
您也可以使用 isDateInToday
来过滤内容。
你不能做的是迭代数组并同时改变它,这是你当前代码在 for
循环中对 allDashboards.removeRange
所做的。
一行:
let todayDashboards = allDashboards.filter { NSCalendar.currentCalendar().isDateInToday([=10=].date!) }
您可以使用 filter
函数和 NSCalendar
的 isDateInToday
筛选所有今天的日期
let filteredDashboards = allDashboards.filter{ NSCalendar.currentCalendar().isDateInToday([=10=].date!) }
我有一个对象数组,其中 属性 是 NSDate 类型的日期。该数组包括未来的日子和过去的日子。
我想从该数组中获取一组元素,其中仅包含今天的日期,而不是过去 24 小时内的日期。
我按降序排列元素(新到旧):
allDashboards.sortInPlace({ [=10=].date!.compare(.date!) == NSComparisonResult.OrderedDescending
我尝试做一个 for 循环,检查日期是否是昨天并在那里剪切数组,但它不起作用,因为它可能没有包含昨天日期的元素:
for dash in allDashboards {
if (NSCalendar.currentCalendar().isDateInYesterday(dash.date!)) {
print(i)
allDashboards.removeRange(Range.init(start: 0, end: i))
break
}
i += 1
}
有没有一种方法可以查看日期是否超过一天而不是日期是否在当天?
您可以使用 NSDateComponents
创建代表可接受范围的开始和结束的日期。这些可以是任何你想要的。
获得这些日期后,您可以创建一个 NSPredicate
匹配 >
开始日期和 <
结束日期。这将为您生成过滤后的数组。
您也可以使用 isDateInToday
来过滤内容。
你不能做的是迭代数组并同时改变它,这是你当前代码在 for
循环中对 allDashboards.removeRange
所做的。
一行:
let todayDashboards = allDashboards.filter { NSCalendar.currentCalendar().isDateInToday([=10=].date!) }
您可以使用 filter
函数和 NSCalendar
isDateInToday
筛选所有今天的日期
let filteredDashboards = allDashboards.filter{ NSCalendar.currentCalendar().isDateInToday([=10=].date!) }