距离斯威夫特出生的天/小时/月/分钟

Posted

技术标签:

【中文标题】距离斯威夫特出生的天/小时/月/分钟【英文标题】:Days/Hours/Months/Minutes away from Birth in Swift 【发布时间】:2015-04-05 04:04:49 【问题描述】:

我在将一些代码从 Objective-C 转换为 Swift 时遇到了一些问题。我正在尝试制作一个标签来说明我的年龄。我想给出我的生日,它会返回几天、几小时、几分钟、几秒关于我已经活了多久。代码是:

@IBAction func birthday(sender:AnyObject)

    var dateComponents = NSDateComponents()
    dateComponents.day = 19
    dateComponents.month = 12
    dateComponents.year = 1999

    var calender = NSCalendar(identifier: NSGregorianCalendar)
    var birthDate = calender!.dateFromComponents(dateComponents)
    var currentDate = NSDate.date()

    var durationDateComponents = calender.components(NSCalenderUnit.CalenderUnitDay, fromDate: birthDate!,
        toDate: currentDate,
        options: nil)

    var numberOfDaysFromBirth = durationDateComponents.day

    messageLabel.text = "\(numberOfDaysFromBirth)"

【问题讨论】:

好的,当您运行您发布的代码时会发生什么? 将 NSCalenderUnit.CalenderUnitDay 更改为 NSCalendarUnit.CalendarUnitDay 我实际上想要年、月、日和秒。就像我几岁一样。 你想要从你生日算起的天数,从你出生那天算起的小时数等?比如 5586 天,134074 小时等。 我想知道我多大了。就像年、15、7 个月、3 天一样。(数字只是一个前) 【参考方案1】:
var dateComponents = NSDateComponents()
dateComponents.day = 19
dateComponents.month = 12
dateComponents.year = 1999

let birthDate = NSCalendar(identifier: NSGregorianCalendar)!.dateFromComponents(dateComponents)!

let durationDateComponents = NSCalendar(identifier: NSGregorianCalendar)!.components( .CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay | .CalendarUnitHour |  .CalendarUnitMinute | .CalendarUnitSecond, fromDate: birthDate, toDate: NSDate(), options: nil)

let numberOfyearsFromBirth = durationDateComponents.year      // 15
let numberOfMonthsFromBirth = durationDateComponents.month    // 3
let numberOfDaysFromBirth = durationDateComponents.day        // 17
let numberOfHoursFromBirth = durationDateComponents.hour      // 1
let numberOfminutesFromBirth = durationDateComponents.minute  // 28
let numberOfsecondsFromBirth = durationDateComponents.second  // 34

【讨论】:

我是 swift 新手。那么我如何将此代码插入标签中。我不需要 IBAction 吗? 只需为您的标签添加一个 IBOutlet。是的,这应该进入您的 IBAction 如果您想要例如总小时数,您只需将 CalendarUnitHour 传递给 durationDateComponents 它告诉我删除@IBOutlet。 只需为您的视图添加一个标签。右键单击它并将引用出口拖到您的 ViewController

以上是关于距离斯威夫特出生的天/小时/月/分钟的主要内容,如果未能解决你的问题,请参考以下文章

IOS 距离现在的几分,几个小时,几分钟,几天,几周几月,几年

MySQL格式化日期参数

MySQL DataType--日期格式

iOS之计算上次日期距离现在多久, 如 xx 小时前xx 分钟前等

将分钟转换为可读的天/小时/分钟

MySQL DATE_FORMAT() 函数