2010-04-01 35 views

Trả lời

2

Xem this question.

câu trả lời chấp nhận bởi Brian Ramsay là:

Với 326,4 giây, pseudo-code:

minutes = floor(326.4/60) 
seconds = round(326.4 - minutes * 60) 

Nếu bạn in với %02d, bạn sẽ nhận được ví dụ 03:08 nếu một trong hai số nhỏ hơn 10.

+0

với "% 2d" bạn sẽ nhận được "3: 8", bạn muốn % 02d thay vào đó để có số 0 đứng đầu. – progrmr

+0

Cảm ơn bạn đã chỉ ra điều này @progrmr; Tôi đã không nhìn lại câu trả lời này trong một thời gian để thấy sự mất cân bằng. –

30
NSTimeInterval interval = 326.4; 
long min = (long)interval/60; // divide two longs, truncates 
long sec = (long)interval % 60; // remainder of long divide 
NSString* str = [[NSString alloc] initWithFormat:@"%02d:%02d", min, sec]; 

Các% 02d format specifier cung cấp cho bạn một số 2 chữ số với một số không hàng đầu.

Lưu ý: đây chỉ là giá trị dương của khoảng thời gian.

+0

Cảm ơn bạn! Điều này là hoàn hảo – daidai

+0

chỉ mất giá trị tuyệt đối của khoảng thời gian, sau đó làm toán để nó hoạt động cho các giá trị tiêu cực cũng có. 1 cho giải pháp tốt! – Sam

Các vấn đề liên quan