Как я могу конвертировать двойной в ЧЧ: ММ: СС в ObjectiveC - PullRequest
0 голосов
/ 10 сентября 2010

У меня двойная 0,27392, и я знаю, что это 6:34:27 утра.Это просто в Excel, но я не могу заставить NSDateFormatter работать с магией.

Ответы [ 2 ]

2 голосов
/ 10 сентября 2010

Ах, понятно.Это количество часов, прошедших с начала дня.В этом случае:

double time = 0.27392;
double timeInHours = time*24; // 6.57408
int hours = (int) timeInHours; // 6
int minutes = (timeInHours - floor(timeInHours)) * 60; // 0.57408*60=34.4448 → 34

… и т. Д.

1 голос
/ 10 сентября 2010

О, хорошо, отличный улов зул.

В таком случае я бы сделал:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];

double time = 0.27392;
double timeInSeconds = time*24*60*60; // 0.27392 * 24 = 6.57408 hours *60 for minutes * 60 for seconds

NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:timeInSeconds]; //Creates a date: 1 January 2001 6:34:27 AM, GMT

NSLog(@"Time: %@", [dateFormatter stringFromDate:date]);
[dateFormatter release];
...