在iphone中将时间间隔拆分为10分钟

在iphone中将时间间隔拆分为10分钟,iphone,objective-c,Iphone,Objective C,我想把时间分成30分钟的间隔,这样我就可以得到这样的时间: 12:00 AM 12:10 AM 12:20 AM。。。。。。。。。。直到晚上11:50 我正在尝试这样的事情: NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; [timeFormat setDateFormat:@"hh:mm a"]; NSDate* fromTime = [timeFormat dateFromString:startTime]; NSD

我想把时间分成30分钟的间隔,这样我就可以得到这样的时间:

12:00 AM 12:10 AM 12:20 AM。。。。。。。。。。直到晚上11:50

我正在尝试这样的事情:

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"hh:mm a"];
NSDate* fromTime = [timeFormat dateFromString:startTime];
NSDate* toTime = [timeFormat dateFromString:endTime];

NSLog(@"Start time %@",fromTime);
NSLog(@"End time %@",toTime);

NSDate *dateByAddingThirtyMinute;

dateByAddingThirtyMinute = [fromTime dateByAddingTimeInterval:1800];

NSString *formattedDateString;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"hh:mm a"];  
formattedDateString = [dateFormatter stringFromDate:dateByAddingThirtyMinute];  

NSLog(@"Time after 10 min %@",formattedDateString);
但我能打印出前十分钟的分割。。。 谁能帮我循环一下吗…

试试这个

int numberOfIntervals = [toDate timeIntervalSinceDate:fromDate]/(10*60);
for (int i = 0; i < numberOfIntervals; i++) {
    NSDate *theDate = [date dateByAddingTimeInterval:i * 60 * 10];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"hh:mm a"];  
    NSString *formattedDateString = [dateFormatter stringFromDate:dateByAddingThirtyMinute];
    NSLog(@"Time after 10 min %@",formattedDateString);
    [dateFormatter release];
}
int numberofinterval=[toDate timeIntervalSinceDate:fromDate]/(10*60);
对于(int i=0;i
尝试以下代码

    NSString *startTime = @"12:00 AM";  
    NSString *endTime = @"11:40 AM";


    NSDateFormatter *timeFormat = [[[NSDateFormatter alloc] init] autorelease];
    [timeFormat setDateFormat:@"hh:mm a"]; 
    NSDate* fromTime = [timeFormat dateFromString:startTime]; 
    NSDate* toTime = [timeFormat dateFromString:endTime];
    NSDate *dateByAddingThirtyMinute ;
    NSTimeInterval timeinterval = [toTime timeIntervalSinceDate:fromTime];
    NSLog(@"time Int %f",timeinterval/3600);
    float numberOfIntervals = timeinterval/3600;
    NSLog(@"Start time %f",numberOfIntervals);

    for(int iCount = 0;iCount<numberOfIntervals*6 ;iCount ++)
    {
        dateByAddingThirtyMinute = [fromTime dateByAddingTimeInterval:600];
        fromTime = dateByAddingThirtyMinute;
        NSString *formattedDateString; 
        NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
        [dateFormatter setDateFormat:@"hh:mm a"];
        formattedDateString = [dateFormatter stringFromDate:dateByAddingThirtyMinute];
        NSLog(@"Time after 10 min %@",formattedDateString);
    }
NSString*startTime=@“上午12:00”;
NSString*endTime=@“上午11:40”;
NSDateFormatter*timeFormat=[[[NSDateFormatter alloc]init]autorelease];
[时间格式setDateFormat:@“hh:mm a”];
NSDate*fromTime=[timeFormat dateFromString:startTime];
NSDate*toTime=[timeFormat dateFromString:endTime];
NSDate*通过添加第三分钟来确定日期;
NSTimeInterval timeinterval=[toTime TimeIntervalsIncestate:fromTime];
NSLog(@“时间整数%f”,时间间隔/3600);
float numberofinterval=时间间隔/3600;
NSLog(@“开始时间%f”,NumberOfInterval);

对于(int iCount=0;iCount其他两个答案都是错误的,因为它们不考虑夏令时。为此,您必须使用
NSDateComponents
NSCalendar

NSDate *startDate = ...;
NSDate *endDate = ...;
NSDateComponents *diff = [[NSDateComponents alloc] init];
[diff setMinute:0];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *tmp = startDate;

NSMutableArray *dates = [NSMutableArray arrayWithObject:tmp];

while ([tmp laterDate:endDate] == endDate) {
  [diff setMinute:[diff minute] + 10];
  tmp = [cal dateByAddingComponents:diff toDate:startDate options:0];
  [dates addObject:tmp];
}

在这段代码中,我并没有通过
NSDateFormatter
实际运行
NSDate
对象,因为这应该发生在不同的级别。这段代码是关于底层数据(模型)的,而
NSDateFormatter
通常在用户可见级别(视图)运行。另外,使用原始数据对象通常比使用格式化字符串更有用。

我唯一关心的代码是int numberofinterval=[toDate TimeIntervalsIncestDate:fromDate]/(10*60);行,因为我不确定int如何使用除法(有时会有点奇怪:p)这不包括由于夏令时而添加或跳过的小时数。这不包括由于夏令时而添加或跳过的小时数。