найти время с момента последнего обновления пользователя iOS - PullRequest
0 голосов
/ 11 февраля 2012

Я создаю приложение для iOS, в котором пользователи смогут ввести приблизительное время ожидания, чтобы попасть в местные бары / рестораны.Чтобы повысить надежность, я хочу иметь возможность отслеживать, когда пользователь вводил информацию, а затем это время в XML-файл, а затем иметь возможность анализировать файл в табличном представлении (с предыдущим обновлением), чтобы другие могли его увидеть.В ячейке таблицы будет отображаться название места, приблизительное время ожидания и время ввода этого времени ожидания.

По сути, я пытаюсь выяснить, как мне отформатировать NSDate (я хочу, чтобывыглядят как время, например, 10:30 вечера) как раз в то время, когда пользователь меняет cel.И учитывая время, как я могу найти разницу в текущем времени и данном времени?

Спасибо

1 Ответ

3 голосов
/ 11 февраля 2012

Там есть несколько вопросов, ни один из которых не соответствует названию, но здесь идет; -)

Чтобы получить текущее время / дату:

NSDate *now = [NSDate date];

Чтобы сохранить этоЯ предлагаю вам сохранить его в NSUserDefaults:

[[NSUserDefaults standardUserDefaults] setObject:now forKey:@"startTime"];
[[NSUserDefaults standardUserDefaults] synchronize];

Вы можете загрузить дату позже, используя

NSDate *theDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"startTime"];

. Вы можете отформатировать дату во что-то, удобное для чтения человеком, используя NSDateFormatter, например:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];
NSString *time = [formatter stringFromDate:theDate]; // returns something like @"10:30"

Вы можете найти разницу между двумя датами, используя такую ​​функцию:

NSTimeInterval differenceInSeconds = [date1 timeIntervalSinceDate:date2];

Временные интервалы в секундах, поэтому, чтобы преобразовать это в полезное время, вы можете разделитьна 60, чтобы получить минуты, разделите на 60 снова, чтобы получить часы и т. д. Итак, чтобы преобразовать это в удобочитаемое время:

NSTimeInterval differenceInSeconds = ...

NSInteger totalSeconds = floor(differenceInSeconds);
NSInteger seconds = totalSeconds % 60;
NSInteger minutes = totalSeconds / 60;
NSString *waitTime = [NSString strinWithFormat:@"%i minutes, %i seconds", minutes, seconds];
...