Date swift 2中两小时之间的错误计算错误
我有第一个小时的例子,12:03,第二个小时的例子,21:56 最终输出给出9.88 88大于60分钟这是错误,我如何修复它?我的密码在下面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
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是输出是的,但预期的输出是什么?你想怎么解决?我出去了。只要你不提供信息,我就帮不了你。