我有2个NSDate,我想把它分成24小时,我需要知道每小时多少分钟。然后将数据保存到数组中。
抱歉我的英文。 我画了一张照片来描述我的问题。 谢谢!
答案 0 :(得分:2)
如果我正确理解了您的问题,您正在尝试确定两个日期之间的分钟数,并将此间隔除以24.以下代码应说明获取日期之间的时间间隔的方法:
NSDate *startDate = [NSDate dateWithNaturalLanguageString:@"2012-12-01"];
NSDate *endDate = [NSDate dateWithNaturalLanguageString:@"2012-12-02"];
unsigned int unitFlags = NSMinuteCalendarUnit;
NSDateComponents *comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:startDate toDate:endDate options:0];
NSLog(@"Number of minutes: %lu\n", [comps minute]);
从该计算中取出分钟数并除以24,以确定每个范围内的分钟数。
答案 1 :(得分:0)
嗯,NSDate对象本身并不是很有用,你要找的是NSDateComponents。以下是如何从NSDate对象中提取它们的简短示例:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [calendar components:(NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:date];
NSInteger hour = [dateComponents hour]; //etc
首先,您可以使用方法earlierDate:
(NSDate *firstDate = [date1 earlierDate:date2'
)确定首先出现的日期,并从中提取相关信息,如上所示。您将拥有两者以及开始/结束时间和分钟的日子。我相信你可以计算出每小时会有多少分钟。它除了第一个和最后一个之外都是60,除非它们都是0分钟。第一个小时为(60 - x)分钟,最后一个小时为x分钟(x为上面的分钟值)。