int sec = diff;//INFO: time in seconds
int a_sec = 1;
int a_min = a_sec * 60;
int an_hour = a_min * 60;
int a_day = an_hour * 24;
int a_month = a_day * 30;
int a_year = a_day * 365;
NSString *text = @"";
if (sec >= a_year)
{
int years = floor(sec/a_year);
text = [NSString stringWithFormat:@"%d year%@ ", years, years > 0 ? @"s" : @""];
sec = sec - (years * a_year);
}
if (sec >= a_month)
{
int months = floor(sec/a_month);
text = [NSString stringWithFormat:@"%@%d month%@ ", text, months, months > 0 ? @"s" : @""];
sec = sec - (months * a_month);
}
if (sec >= a_day)
{
int days = floor(sec/a_day);
text = [NSString stringWithFormat:@"%@%d day%@ ", text, days, days > 0 ? @"s" : @""];
sec = sec - (days * a_day);
}
if (sec >= an_hour)
{
int hours = floor(sec/an_hour);
text = [NSString stringWithFormat:@"%@%d hour%@ ", text, hours, hours > 0 ? @"s" : @""];
sec = sec - (hours * an_hour);
}
if (sec >= a_min)
{
int minutes = floor(sec/a_min);
text = [NSString stringWithFormat:@"%@%d minute%@ ", text, minutes, minutes > 0 ? @"s" : @""];
sec = sec - (minutes * a_min);
}
if (sec >= a_sec)
{
int seconds = floor(sec/a_sec);
text = [NSString stringWithFormat:@"%@%d second%@", text, seconds, seconds > 0 ? @"s" : @""];
}
NSLog(@"<%@>", text);
fonte
2013-04-14 02:41:54
Sei sicuro che il numero durata non è il numero di secondi? Quindi 2321 sono davvero 38 minuti e 41 secondi? – rmaddy
Si scopre che sono corretto. Il valore della durata è il numero di secondi. Quindi 2321 sono 2321 secondi o 38 minuti e 41 secondi o 38:41. Vedi la mia risposta qui sotto. – rmaddy