Я все время пробовал вычислять примеры, которые нашел на этом сайте, но почему-то каждый раз получаю 0 в качестве значения.Я новичок в IOS, и NSDate дает мне пробежку за свои деньги:)
Я хочу записать время A, когда я нажимаю кнопку «startStop», а затем записать время B, когда я нажимаю его снова.Повторное нажатие (отмена выбора) должно подсчитать время, прошедшее между этими двумя датами.Пока у меня есть это:
-(IBAction)buttonClick {
NSDate *startStopDate = [NSDate alloc];
NSDateFormatter *formatter= [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm:ss"];
NSString *currentTime = [[NSString alloc] init];
NSString *currentTime2 = [[NSString alloc]init];
NSDate *start =[ [NSDate alloc]init];
NSDate *stop = [[NSDate alloc] init];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
if (startStop.selected==NO) {
NSLog(@"started");
[startStop setSelected:YES];
startStopDate = [NSDate date];
currentTime = [formatter stringFromDate:startStopDate];
NSLog(@"Current timestarted is %@",currentTime);
startTime.text = currentTime;
start = [formatter dateFromString:currentTime];
}
else {
NSLog(@"Selected");
[startStop setSelected:NO];
startStopDate = [NSDate date];
currentTime2 = [formatter stringFromDate:startStopDate];
NSLog(@"Current time is %@",currentTime2);
stopTime.text = currentTime2;
stop = [formatter dateFromString:currentTime2];
NSUInteger unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [gregorianCalendar components:unitFlags
fromDate:start
toDate:stop
options:0];
NSInteger hours = [components hour];
NSInteger minutes = [components minute];
NSInteger seconds = [components second];
NSLog(@"hello %d, %d, %d", hours, minutes, seconds);
}
}
Мои ярлыки дают правильный час: минутный вывод при нажатии, но я не могу заставить их перейти к вычислению даты.Я пробовал многочисленные варианты с dateFromString и stringFromDate и несколькими объектами date / string, как вы можете видеть, но пока я получаю только большие отрицательные числа или просто ноль в результате.Любая помощь приветствуется;)
Привет, Ник