检查时间间隔是否落在今天
Check if time interval falls into the today
我有一个包含事件和日历的核心数据,我需要构建一个谓词请求以仅获取今天发生的事件。例如:
EVENTS(在 Core Data table 中是两个日期类型的属性)
1) Start 10/01/2015 14:00:00 Ends 10/01/2015 16:00:00
2) Start 10/01/2015 14:00:00 Ends 11/01/2015 19:00:00
3) Start 09/01/2015 12:00:00 Ends 12/01/2015 16:00:00
4) Start 09/01/2015 12:00:00 Ends 09/01/2015 16:00:00
今天是
10/01/2015
我需要 return 3 个事件 (#1-2-3) 的请求并排除 #4 为:
1) Is Starting today and Ends today
2) Starts today and Ends tomorrow (so it is running today as well)
3) Started yesterday and Ends after tomorrow (so it is running today as well)
4) Is not running today
所以问题是最好的方法是什么?也许有人至少可以给出如何确定今天的开始时间戳和结束时间戳的线索(10/01/2015 00:00:00 和 10/01/2015 24:00:00 如果我是正确的???)
好的,我认为您的主要问题是如何获取日期边界(即代表特定日期 0:00h 的 NSDate
实例)。这其实很简单:
NSDate *startOfDay;
[[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitDay
startDate:&startOfDay
interval:NULL
forDate:yourDate];
给定任何日期 (yourDate
),startOfDay
将是同一日期,但在 0:00h。
有了这些信息,构建谓词字符串应该会非常简单。条件应该是这样的:
event.startDate <= endOfDay AND event.endDate >= startOfDay
我有一个包含事件和日历的核心数据,我需要构建一个谓词请求以仅获取今天发生的事件。例如:
EVENTS(在 Core Data table 中是两个日期类型的属性)
1) Start 10/01/2015 14:00:00 Ends 10/01/2015 16:00:00
2) Start 10/01/2015 14:00:00 Ends 11/01/2015 19:00:00
3) Start 09/01/2015 12:00:00 Ends 12/01/2015 16:00:00
4) Start 09/01/2015 12:00:00 Ends 09/01/2015 16:00:00
今天是
10/01/2015
我需要 return 3 个事件 (#1-2-3) 的请求并排除 #4 为:
1) Is Starting today and Ends today
2) Starts today and Ends tomorrow (so it is running today as well)
3) Started yesterday and Ends after tomorrow (so it is running today as well)
4) Is not running today
所以问题是最好的方法是什么?也许有人至少可以给出如何确定今天的开始时间戳和结束时间戳的线索(10/01/2015 00:00:00 和 10/01/2015 24:00:00 如果我是正确的???)
好的,我认为您的主要问题是如何获取日期边界(即代表特定日期 0:00h 的 NSDate
实例)。这其实很简单:
NSDate *startOfDay;
[[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitDay
startDate:&startOfDay
interval:NULL
forDate:yourDate];
给定任何日期 (yourDate
),startOfDay
将是同一日期,但在 0:00h。
有了这些信息,构建谓词字符串应该会非常简单。条件应该是这样的:
event.startDate <= endOfDay AND event.endDate >= startOfDay