Tôi đang có một thời gian khủng khiếp khi cố gắng làm điều gì đó dễ dàng. Tôi có giá trị NSNumber là 32025,89 giây. Tôi cần phải thể hiện điều đó trong giờ, phút, giây. Có phương pháp nào phun ra được không? Tôi dường như không thể tìm thấy một trình định dạng phù hợp.NSNumber giây để Giờ, phút, giây
Trả lời
Bạn đã thử tạo NSDate
từ đó và in bằng cách sử dụng NSDateFormatter
?
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[theNumber doubleValue]];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSLog(@"%@", [formatter stringFromDate:date]);
[formatter release];
Nếu bạn cần giá trị riêng cho giờ, phút và giây, hãy sử dụng NSDateComponents
theo đề xuất của nall.
Ở trên sẽ không in số tiền chính xác nếu số NSNumber
đại diện cho nhiều hơn một ngày. Nó có thể là 1 ngày và 1 giờ, và nó sẽ chỉ in 01:00:00. Trong trường hợp này, bạn nên tính giờ, phút và giây theo cách thủ công.
Điều này là nhiều hơn dọc theo dòng của những gì tôi đang tìm kiếm. Tôi biết tôi có thể od toán học nhưng tôi đã cố gắng để tìm một cách mà về cơ bản đã làm nó cho tôi - NSDateFormatter là tôi đoán, những gì tôi cần. Cảm ơn. – SonnyBurnette
Sử dụng mã này Tôi đã có một người dùng có giá trị không đúng - thay vì 03:00 trong 180 giây - họ nhận được 33:00. Họ đang ở trong một múi giờ trước 4,5 giờ và tôi tự hỏi liệu nửa giờ trong múi giờ của họ có thể gây ra điều này ... – petenelson
Nếu bạn không muốn chỉ phân chia, hãy thử điều này. Nó có thể đủ gần cho mục đích của bạn. Lưu ý: Nó không tính đến độ chính xác phụ thứ hai. (setSecond
mất NSInteger
).
NSDateComponents* c = [[[NSDateComponents alloc] init] autorelease];
[c setSecond:32025.89];
NSCalendar* cal = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]
autorelease];
NSDate* d = [cal dateFromComponents:c];
NSDateComponents* result = [cal components:NSHourCalendarUnit |
NSMinuteCalendarUnit |
NSSecondCalendarUnit
fromDate:d];
NSLog(@"%d hours, %d minutes, %d seconds",
[result hour], [result minute], [result second]);
Đây là một cách mà không cần bất kỳ thư viện trừ modf()
từ math.h
:
float fsec = 32025.89f, frac = 0;
int milliseconds = (int)(modf(fsec, &frac) * 1000);
int isec = (int)frac;
int hours = isec/3600;
int minutes = (isec % 3600)/60;
int seconds = isec % 60;
Tôi chỉ nhận thấy rằng bạn chia 0 cho 3600 để nhận giờ. Đó là một lỗi đánh máy, phải không? Bạn có nghĩa là để nói "fsec/3600" phải không? – SonnyBurnette
Và 'frexp' phải làm gì với điều này? –
um ... nó trích xuất phần phân số và phần nguyên của số con trỏ floatingh. Trong trường hợp này, mili giây và giây. –
NSNumber * valueForDisplay = [NSNumber numberWithDouble: [tự valueForDisplay: clockName]];
NSNumber *totalDays = [NSNumber numberWithDouble:
([valueForDisplay doubleValue]/86400)];
NSNumber *totalHours = [NSNumber numberWithDouble:
(([valueForDisplay doubleValue]/3600) -
([totalDays intValue] * 24))];
NSNumber *totalMinutes = [NSNumber numberWithDouble:
(([valueForDisplay doubleValue]/60) -
([totalDays intValue] * 24 * 60) -
([totalHours intValue] * 60))];
NSNumber *totalSeconds = [NSNumber numberWithInt:
([valueForDisplay intValue] % 60)];
- 1. Oracle chuyển đổi giây sang giờ: phút: giây
- 2. Cách nhận giờ, phút và giây
- 3. Ngày, giờ, phút, giây giữa hai ngày
- 4. PHP - Chuyển đổi mili giây để Giờ: Phút: Seconds.fractional
- 5. Cách đơn giản để chuyển đổi HH: MM: SS (giờ: phút: giây.split giây) thành giây
- 6. Làm thế nào để chuyển đổi giây thành giờ, phút và giây?
- 7. Javascript hiển thị mili giây như ngày: giờ: phút mà không có giây
- 8. tập lệnh đếm ngược javascript từ mili giây đến giờ-phút-giây
- 9. MYSQL DateTime Now() + 5 ngày/giờ/phút/giây?
- 10. Cách phân tích ngày/giờ/phút/giây bằng ruby?
- 11. Chuyển đổi ngày thành giờ/phút/giây cực kỳ chậm
- 12. nhận giờ, phút và giây hiện tại trong iPhone
- 13. Lịch Java nhận ngày hiện tại, không có giờ, phút, giây và mili giây, tính bằng mili giây
- 14. Nhận dữ liệu trong vài giây, muốn tính giờ, phút & giây
- 15. Vẽ giây, phút và giờ trên yAxis với Highcharts
- 16. Định dạng giây và phút
- 17. Countdowntimer theo phút và giây
- 18. Chuyển đổi giây thành Ngày, Phút và Giây
- 19. Từ lâu đến phút và giây?
- 20. Cập nhật TSQL phút và giây DATETIME
- 21. Nhận ngày và giờ khác nhau theo ngày, giờ, phút và giây trong Android
- 22. làm thế nào để chuyển đổi giây phút: định dạng giây
- 23. Php: DateTime: làm thế nào để thiết lập chỉ giây (không giờ không phút)
- 24. Python chức năng để chuyển đổi giây vào phút, giờ, và ngày
- 25. khoảng thời gian định dạng để hiển thị giờ, phút, giây
- 26. Degrees Chuyển đổi/Phút/Giây để Decimal Tọa
- 27. Làm cách nào để chuyển đổi các đồng hồ bấm giờ thành giây nano, mili giây và giây?
- 28. Giờ kết hợp/phút/giây trong biểu thức chính quy - một cách tốt hơn?
- 29. Cách trích xuất năm, tháng, ngày, giờ, phút, giây kể từ ngày mysql?
- 30. Chuyển đổi giây thành ngày, phút và giờ trong Obj-c
Bản sao của http://stackoverflow.com/questions/1237778/how-do-i-break-down-an-nstimeinterval-into-year-months-days-hours-minutes-and. –