Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date swift 2中两小时之间的错误计算错误_Date_Swift2_Nscalendar - Fatal编程技术网

Date swift 2中两小时之间的错误计算错误

Date swift 2中两小时之间的错误计算错误,date,swift2,nscalendar,Date,Swift2,Nscalendar,我有第一个小时的例子,12:03,第二个小时的例子,21:56 最终输出给出9.88 88大于60分钟这是错误,我如何修复它?我的密码在下面 let calendar = NSCalendar.currentCalendar() if firstHour != nil && secondHour != nil { let dateComponents = calendar.components(NSCalendarUnit.Minute, fromDat

我有第一个小时的例子,12:03,第二个小时的例子,21:56

最终输出给出9.88

88大于60分钟这是错误,我如何修复它?我的密码在下面

    let calendar = NSCalendar.currentCalendar()
    if firstHour != nil && secondHour != nil {

    let dateComponents = calendar.components(NSCalendarUnit.Minute, fromDate: firstHour!, toDate: secondHour!, options: [])
    let seconds : Double = Double(dateComponents.minute)
    let clean : Double = (seconds / 60.0)


    let formattern = NSNumberFormatter()
    formattern.maximumFractionDigits = 2
    let cleando  = formattern.stringFromNumber(clean)!

    print(cleando)

    }

    Output : 9.88

若你们以整数形式除以秒,那个么你们将得到大于60的答案。您需要使用
datecomponentsformter()
以小时为单位获取时间差:分钟格式

Swift 4:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"

let timeAtPress = dateFormatter.date(from: "12:03")

let timeAtPress2 = dateFormatter.date(from: "21:56")

let elapsed = timeAtPress2?.timeIntervalSince(timeAtPress!)

let formatter = DateComponentsFormatter()
formatter.unitsStyle = .positional
formatter.allowedUnits = [ .minute, .second ]
formatter.zeroFormattingBehavior = [ .pad ]

let formattedDuration = formatter.string(from: elapsed!/60)
print(formattedDuration!) // 9:53

如果您想在小时内完成,为什么不直接使用
dateComponents.hour
?您希望得到什么输出?@vadian 9.88是输出是的,但预期的输出是什么?你想怎么解决?我出去了。只要你不提供信息,我就帮不了你。