将NSTimeInterval除以24小时

时间:2012-03-13 15:17:49

标签: objective-c ios

我有2个NSDate,我想把它分成24小时,我需要知道每小时多少分钟。然后将数据保存到数组中。

抱歉我的英文。 我画了一张照片来描述我的问题。 谢谢! update

2 个答案:

答案 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为上面的分钟值)。