距离斯威夫特出生的天/小时/月/分钟
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 距离现在的几分,几个小时,几分钟,几天,几周几月,几年