我试图创建一个图表,显示一个月的数据与过去一周按周分解的数据。
例如,今天查看图表会显示7月对6月,每个图表上会有5个点,其中包含以下日期:
6月:1-8,9-15,16-22,23-29,30 7月:1-8,9-15,16-22,23-29,30-31谓词看起来像
NSPredicate *predicate = [HKQuery predicateForSamplesWithStartDate:self.pastStartDate endDate:self.currentEndDate options:HKQueryOptionStrictStartDate];
其中self.pastStartDate
是上个月的第一个,self.currentEndDate
是当月的最后一个。
然后我们像这样设置查询
HKStatisticsCollectionQuery *query = [[HKStatisticsCollectionQuery alloc] initWithQuantityType:quantityType quantitySamplePredicate:predicate options:HKStatisticsOptionDiscreteAverage anchorDate:self.pastStartDate intervalComponents:self.interval];
因此,对于这个月,设置了self.interval.day = 7
,以便我们在每个时间间隔内提取一周的数据。问题是这个区间不是日历识别的,因此它不知道上个月的最终数据点应该只有1天,因此我们得到一些重叠。
我们也尝试了self.interval.weekOfMonth = 1
但是,间隔时间不知道它在哪个月,所以这也不起作用。
是否有办法根据日历创建间隔,以便在给定的时间间隔内不包含超过月末的时间间隔?