【问题标题】:Find minutes remaining between two times查找两次之间的剩余分钟数
【发布时间】:2016-07-23 22:54:21
【问题描述】:

我有两次格式为HH:MM 如何比较第二次与第一次的比较,找出距离第一次还有多少分钟:

示例:

timeOne = 12:01
timeTwo = 11:32
output = 29 minutes

Swift 中写这篇文章有什么帮助吗?

【问题讨论】:

  • NSDateFormatter、NSCalendar、NSDateComponentsFormatter
  • 有一个很棒的 pod DateTools 可以正确处理大量基于时间的计算

标签: swift nsdate date-comparison


【解决方案1】:

NSCalendar 可以轻松区分日期(假设 startendNSDate 实例

let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Minute, fromDate: start, toDate: end, options: [])

components.minute

如果您只想获取格式化字符串而不是实际值,请查看NSDateComponentsFormatter

let formatter = NSDateComponentsFormatter()
formatter.allowedUnits = .Minute
formatter.unitsStyle = .SpellOut
// includesTimeRemainingPhrase gives strings like "T minutes remaining"

formatter.stringFromDate(start, toDate: end)

通过更改unitsStyle,您可以获得不同的表示,例如:

"54m"
"54 minutes"
"54 min"
"fifty-four minutes"

【讨论】:

  • 谢谢你的工作!但我没有使用 NSDate 格式,但我能够转换它并执行你的代码!谢谢
  • 我遇到了一些问题,可以说我有第一次(NSDATE 格式,但显示为 u 的字符串)=“12:58 AM”和“1:05 PM”我做 calender.components它的回报是'667'而不是7?帮忙?
【解决方案2】:

您应该使用 2 个NSDate 实例,然后您可以使用下一个 API:

let interval = laterDate.timeIntervalSinceDate(earlierDate)

它以NSTimeInterval 值的形式返回秒数。 将它除以 60 会得到分钟。

【讨论】:

    猜你喜欢
    • 2017-11-18
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2018-05-14
    • 1970-01-01
    • 2017-11-05
    相关资源
    最近更新 更多