【发布时间】:2019-05-28 06:17:46
【问题描述】:
快速计算到另一个日期的天数、小时数、分钟数和秒数。
我已经尝试使用 swifts datecomponents 往返函数,但它返回的天数不正确。
@objc func createCountdown(){
let date = Date()
let calendar = Calendar.current
let components = calendar.dateComponents([.day, .hour, .minute, .second], from: date)
let currentDate = calendar.date(from: components)
let userCalendar = Calendar.current
var birthdayDate = DateComponents()
//Get user's birthday
birthdayDate.month = 4
birthdayDate.day = 16
birthdayDate.hour = 0
birthdayDate.minute = 0
let birthday = userCalendar.date(from: birthdayDate as DateComponents)
let BirthdayDifference = calendar.dateComponents([.day, .hour, .minute, .second], from: currentDate!, to: birthday!)
let daysLeft = BirthdayDifference.day
let hoursLeft = BirthdayDifference.hour
let minutesLeft = BirthdayDifference.minute
let secondsLeft = BirthdayDifference.second
daysLabel.text = String(daysLeft!)
hoursLabel.text = String(hoursLeft!)
minutesLabel.text = String(minutesLeft!)
secondsLabel.text = String(secondsLeft!)
}
代码中的测试日期是生日值。我只是想从当前日期开始对指定的生日进行一天、小时、分钟和秒的倒计时。
此输出为 74 天,但显然从今天 2018 年 12 月 31 日到 4 月 16 日 2019 年 4 月 16 日超过了 74 天。这大约是 105 天,而不是 74 天。非常感谢任何建议。
谢谢。
【问题讨论】:
标签: swift