将秒转换为分钟和秒

27

如何将秒转换为分钟和秒?

我知道可以将秒数转换为分钟,但是我不知道如何获取剩余的秒数...

int minutes = seconds / 60;

1
int remainderSeconds = seconds % 60; 余数秒数 = 秒数 % 60; - ughoavgfhw
@ughoavgfhw:把它作为答案发布,因为这就是答案。 - Mike DeSimone
6个回答

80

您将获得以下分钟:

int minutes = totalSeconds / 60;

并使用以下代码返回剩余秒数:

int seconds = totalSeconds % 60;.

3
当然,% 是模运算符,它可以给出一个数除以另一个数的余数。所以 62 / 60 = 1,62 % 60 = 2,因为 62 = 1 * 60 + 2。 - user756245
我原本想给一个基于61的例子,但我改变了主意。 - user756245
[NSString stringWithFormat:@"%02d:%02d",min,sec]; 结果>> 03:21 - Arash Zeinoddini
真是太简单了...!:) - Guntram

28

这里是来自将整数秒数转换为HH:MM,iPhone的更好的答案。

- (NSString *)timeFormatted:(int)totalSeconds{

  int seconds = totalSeconds % 60; 
  int minutes = (totalSeconds / 60) % 60; 
  int hours = totalSeconds / 3600; 

  return [NSString stringWithFormat:@"%02d:%02d:%02d",hours, minutes, seconds]; 
}

Swift版本:

private func getFormattedVideoTime(totalVideoDuration: Int) -> (hour: Int, minute: Int, seconds: Int){
        let seconds = totalVideoDuration % 60
        let minutes = (totalVideoDuration / 60) % 60
        let hours   = totalVideoDuration / 3600
        return (hours,minutes,seconds)
    }

11

迅捷

/** Returns the seconds as in clock format 02:24  */
    class func formatMinuteSeconds(_ totalSeconds: Int) -> String {

        let minutes = Double(totalSeconds) / 60;
        let seconds = totalSeconds % 60;

        return String(format:"%02d:%02d", minutes, seconds);
    }

4

你可以使用NSMeasurementNSUnitDuration解决这个问题。这些类需要iOS 10.0+、tvOS 10.0+、macOS 10.12+或watchOS 3.0+支持。下面的代码将秒转换为分钟和秒。

int seconds = 230;
NSMeasurement* measurement = [[NSMeasurement alloc] initWithDoubleValue:seconds unit:NSUnitDuration.seconds];
NSMeasurement* measurementMinutes = [measurement measurementByConvertingToUnit:NSUnitDuration.minutes];
int minutes = floor(measurementMinutes.doubleValue);
NSMeasurement* measurementMinutesWithoutSeconds = [measurement measurementBySubtractingMeasurement:[[NSMeasurement alloc] initWithDoubleValue:minutes unit:NSUnitDuration.minutes]];
int secondsRemainder = floor([measurementMinutesWithoutSeconds measurementByConvertingToUnit:NSUnitDuration.seconds].doubleValue);
NSLog(@"%d %d", minutes, secondsRemainder); // 3 50

0
DateComponentsFormatter:一个格式化器,可以创建字符串表示形式,通过使用unitsStyle,您可以获得所需的字符串并指定允许的单位。 例如:对于unitsStyle :: 10000秒的输出。
  1. full = "2小时46分钟49秒"

  2. positional = "2:46:40"

  3. abbreviated = "2小时46分钟40秒"

  4. spellOut = "两小时四十六分钟四十秒”

  5. short = "2小时46分钟40秒"

  6. brief = "2小时46分钟40秒"

    易于使用:

     let time = convertSecondsToHrMinuteSec(seconds: 10000)
    
     func convertSecondsToHrMinuteSec(seconds:Double) -> String{
             let formatter = DateComponentsFormatter()
             formatter.allowedUnits = [.hour, .minute, .second]
             formatter.unitsStyle = .full
    
             let formattedString = formatter.string(from: TimeInterval(seconds))!
             print(formattedString)
             return formattedString
         }
    

0

Swift 5:

格式为hh:mm:ss的字符串

extension Float {

    var hoursMinutesSecondsFormat : String {
    let seconds = self.truncatingRemainder(dividingBy: 60).rounded(.toNearestOrAwayFromZero)
    let minutes = (self / 60).truncatingRemainder(dividingBy: 60).rounded(.toNearestOrAwayFromZero)
    let hours   = (self / 3600).rounded(.toNearestOrAwayFromZero)
    return String(format:"%02.f:%02.f:%02.f", hours,minutes, seconds);
    }
   
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接