2015-03-11 2 views
-1

Для проекта, который я выполняю в отношении программирования iOS, мне нужно преобразовать текущее 24-часовое время в десятичные числа, а затем сохранить строку в метке. Ниже приведены некоторые примеры того, как мне нужно время для вывода:iOS 8 - Формат времени как десятичный

  • 3:24 ТЧ, будет 15,4 (с 24 составляет 40% от 60)
  • 11:02 утра должно быть 11.03
  • 7 : 56 PM должен быть 19,93

Спасибо

ответ

2

Это, чтобы получить время в 24 час. Таким образом, это охватывает ваши последние два момента.

NSDate *currentTime = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"hh:mm"]; 
NSString *resultString = [dateFormatter stringFromDate:currentTime]; 
NSLog(@"%@", resultString); 

Теперь что касается первого вопроса, то, что вам нужно сделать, это хранить протоколы в отдельной переменной, а затем сделать простой процент, чтобы выяснить, десятичное число, а затем создать новую строку времени, например, так :

NSArray *dateArray = [resultString componentsSeparatedByString:@":"]; 
NSString *hour = [dateArray objectAtIndex:0]; 
NSString *minute = [dateArray objectAtIndex:1]; 

int percentage = [minute intValue]; 
percentage = ((percentage/60) * 100); 

NSString *newTime = [NSString stringWithFormat:@"%@.%d", hour, percentage]; 

NSLog(@"New time is: %@", newTime); 

Я надеюсь, что это помогает :)

+1

'процент/60 * 100', а затем еще отобразить его после точки? Почему бы не просто «час + (процент/60)»? – Eimantas

+1

@Eimantas прочитал вопрос пожалуйста. В вопросе говорится 15.4. 15 и 4 разделены точкой. jjj хочет строку с часом, а затем точкой, а затем процентом. –

+1

'24/60 == 0.4'. Таким образом, '15 + 0.4 == 15.4'. Таким образом, вы можете сделать 'int hour = [dateArray [0] intValue]; int minute = [dateArray [1] intValue]; ', вычислять процент и добавлять час к минуте. – Eimantas

Смежные вопросы