Я пытаюсь сделать счетчик, который показывает количество дней, пока мы не отправимся в поездку в Европу. Это всего лишь около 70 дней (по состоянию на сегодняшний день), поэтому я не считаю, что мне нужно беспокоиться об астрономически больших количествах или чем-то еще, но я действительно в тупике - я прикрепил код, который мне дали некоторые друзья, Не работай. Поверьте мне, когда я говорю, что я пробовал все, что мог придумать, - и прежде чем кто-нибудь укусит мою голову, что я видел на этих форумах, да, я очень сильно смотрел на Apple Documentation, однако я не на 100% с чего начать - я пробовал NSTimer, NSDate и все их подклассы и методы, но тут ничего не выпрыгивает.Подсчитайте дни - iPhone Count Down Timer
С точки зрения того, что, на мой взгляд, я должен делать, я думаю, мне нужно каким-то образом назначить целочисленное значение для «дня» сегодня/сейчас/текущего дня, который будет динамически изменяться с помощью [NSDate date]
, а затем тот же на тот день, когда мы уходим. Обратный отсчет просто обновляется, когда метод снова вызван (я могу сделать это, используя NSTimer, если это необходимо), а значение, отображаемое на обратном отсчете, - это разница между этими двумя значениями.
Я не особо хочу иметь мерцающую вещь, которая обновляется каждую секунду, пока мы не уйдем - лично я думаю, что это липкий, но если кто-то знает, как тогда я буду благодарен за это в будущем.
Я также провел обширный поиск google, и я могу просто использовать неправильные поисковые запросы, но я ничего не могу найти.
Любая помощь очень ценится.
спасибо.
Michaeljvdw
- (void)countDownMethod {
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:startDay];
[comps setMonth:startMonth];
[comps setYear:startYear];
[comps setHour:startHour];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
NSLog(@"%@",date);
[gregorian release];
[comps release];
NSTimeInterval diff = [date timeIntervalSinceNow];
int diffInt = diff;
NSString *days = [NSString stringWithFormat:@"%d",diffInt/86400];
day0.text = @"0";
day1.text = @"0";
day2.text = @"0";
NSLog(@"Days Length: %d",days.length);
if(days.length >= 1){
day2.text = [days substringFromIndex:days.length - 1];
if(days.length >= 2){
day1.text = [days substringWithRange:NSMakeRange(days.length - 2, 1)];
if(days.length >= 3){
day0.text = [days substringWithRange:NSMakeRange(days.length - 3, 1)];
}
}
}
NSString *hours = [NSString stringWithFormat:@"%d",(diffInt%86400)/3600];
hour0.text = @"0";
hour1.text = @"0";
NSLog(@"Hours Length: %d",hours.length);
if(hours.length >= 1){
hour1.text = [hours substringFromIndex:hours.length - 1];
if(hours.length >= 2){
hour0.text = [hours substringWithRange:NSMakeRange(hours.length - 2, 1)];
}
}
NSString *minutes = [NSString stringWithFormat:@"%d",((diffInt%86400)%3600)/60];
minute0.text = @"0";
minute1.text = @"0";
NSLog(@"Minutes Length: %d",minutes.length);
if(minutes.length >= 1){
minute1.text = [minutes substringFromIndex:minutes.length - 1];
if(minutes.length >= 2){
minute0.text = [minutes substringWithRange:NSMakeRange(minutes.length - 2, 1)];
}
}
}
Большое спасибо, это работает отлично. Очень признателен! – Michaeljvdw