我有一段可怕的时间试图做一些应该很容易的事情。我有一个32025.89秒的NSNumber值。我需要在小时,分钟,秒中表示这一点。有没有一种方法可以把它吐出来?我似乎无法找到合适的格式化程序。NSNumber of seconds to minutes,minutes,seconds
回答
您是否尝试过创建从一个NSDate
和印刷,采用了NSDateFormatter
?
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[theNumber doubleValue]];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSLog(@"%@", [formatter stringFromDate:date]);
[formatter release];
如果你需要几个小时,分钟和秒的各个值,使用NSDateComponents
通过NALL的建议。
如果NSNumber
代表超过一天,上面将不会打印正确的金额。可能是1天和1小时,并且只能打印01:00:00。在这种情况下,您应该手动计算小时,分钟和秒钟。
这更符合我所寻找的线。我知道我可以计算数学,但我试图找到一种方式,基本上为我做了 - NSDateFormatter是我想,我需要什么。谢谢。 – SonnyBurnette 2009-10-07 01:00:42
使用此代码我有一个用户谁得到了一个不正确的值 - 而不是03:00 180秒 - 他们得到了33:00。他们在一个4.5小时的时区,我想知道在他们的时区半小时是否可能导致这... – petenelson 2013-08-06 08:52:23
如果你不想分开它,试试这个。它可能足够接近你的目的。 注意:它不占亚秒级精度。 (setSecond
需要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]);
这里的无除了modf()
任何库从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;
我只注意到,你除以3600得到小时。这是一个错字,对吗?你的意思是说“fsec/3600”正确吗? – SonnyBurnette 2009-10-07 01:08:11
“frexp”与此有什么关系? – 2009-10-07 01:11:06
um ...它提取浮点数指针的小数部分和整数部分。在这种情况下,毫秒和秒。 – 2009-10-07 01:41:40
的NSNumber * valueForDisplay = [NSNumber的numberWithDouble: [自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. Regular Expression/Javascript:Convert Degrees Minutes Seconds to Decimal Degrees
- 2. jqGrid cell as minutes/seconds and incrementing
- 3. 需要了解Javascript语法var timer = duration,minutes,seconds;
- 4. Swift倒数计时器标签为Days/Hours/Minutes/Seconds
- 5. MediaWiki:Convert seconds to HH:MM:SS
- 6. ORACLE - Group By Ten Minutes
- 7. jQM DateBox add 2 minutes
- 8. mysql NOW()+ $ seconds php?
- 9. jtop cpu seconds
- 10. TimeVal Struct Seconds and Microseconds
- 11. 在Linux上使用find命令时, - {minutes}和{minutes}之间有什么区别?
- 12. Youtube API seekTo()in float seconds
- 13. Javascript countdown for every 3 Seconds
- 14. Seconds Behind Master列在MySQL
- 15. 在Days,Hours,Minutes和Secondes中显示蜱
- 16. Hazelcast缓存未根据<time-to-live-seconds>逐出>
- 17. Multiple Raphael Clocks on one page,not passing hours/minutes
- 18. Monotouch UIDatePicker SetDate always 1Hours and 5 Minutes
- 19. Imacros设置自定义WAIT SECONDS
- 20. Calculate Date from seconds,from AD 01-01-0001
- 21. bigquery upload big(compressed)CSV 100 seconds timeout
- 22. Mysql SELECT query did did work,now does not 2 minutes later(without changes)
- 23. 如何隐藏或禁用Android TimePickerDialog中的Minutes小部件?
- 24. 它是一个为liftweb TimeHelpers错误:60.minutes不等于1.hours
- 25. 创建一个文本框,其中的文字总是说MINUTES
- 26. C#:调用SQL SELECT语句不会返回'time in seconds'值
- 27. NSnumber in to NSstring
- 28. 水晶报表函数用于将Seconds转换为Timespan格式
- 29. 如何从python的datetime.now()获取min,seconds和milliseconds?
- 30. python datetime.timedelta - 如何以<seconds>的形式显示。 <micros>
http://stackoverflow.com/questions/1237778/how-do-i-break-down-an-nstimeinterval-into-year-months-days-hours-minutes-and的重复。 – 2009-10-07 02:14:59