Java 日期差
我找不到用swift写这封信的方法,但我如何计算现在和年底之间的日期差呢?我已经在java中完成了这项工作,但在swift中找不到同样的方法。以下是我编写的java逻辑:Java 日期差,java,ios,swift,time,Java,Ios,Swift,Time,我找不到用swift写这封信的方法,但我如何计算现在和年底之间的日期差呢?我已经在java中完成了这项工作,但在swift中找不到同样的方法。以下是我编写的java逻辑: Calendar today = Calendar.getInstance(); Calendar endOfYear = Calendar.getInstance(); endOfYear.setTime(new Date(0)); endOfYear.set(
Calendar today = Calendar.getInstance();
Calendar endOfYear = Calendar.getInstance();
endOfYear.setTime(new Date(0));
endOfYear.set(Calendar.DAY_OF_MONTH, 31);
endOfYear.set(Calendar.MONTH, 11);
endOfYear.set(Calendar.YEAR, Calendar.getInstance().get(Calendar.YEAR));
double t = endOfYear.getTimeInMillis() - today.getTimeInMillis();
String time = new SimpleDateFormat("0:ss", Locale.US).format(t);
这当然只会输出我在swift中尝试的倒计时秒数
更新:
我所拥有的只是:
func timer() {
let time = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: NSDateFormatterStyle.NoStyle, timeStyle: NSDateFormatterStyle.MediumStyle)
timeLabel.text = "\(time)"
}
这正是我不想要的全部时间…您创建了两个
NSDate
实例,然后使用CFDateGetIntervalSinceDate(当前时间,年终)
这与您想要的类似(不太准确,但搜索文档,了解如何获得准确的年终日期,包括小时和秒):
花了我一些时间,但这就是我想要的:
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Day, .Month, .Year, .Hour, .Minute, .Second, .Nanosecond], fromDate: date)
let now = NSCalendar.currentCalendar().dateWithEra(1, year: components.year, month: components.month, day: components.day, hour: components.hour, minute: components.minute, second: components.second, nanosecond: components.nanosecond)!
let newYears = NSCalendar.currentCalendar().dateWithEra(1, year: components.year, month: 12, day: 31, hour: 01, minute: 00, second: 00, nanosecond: 00)!
let units: NSCalendarUnit = [.Day, .Month, .Year, .Hour, .Minute, .Second]
let difference = NSCalendar.currentCalendar().components(units, fromDate: now, toDate: newYears, options: [])
let seconds = difference.second
这是一种计时器格式,类似于它所说的n天,n小时,n分钟,n秒。
谢谢你 考虑到这不是一个代码重构网站,如果你可以添加你的
swift
代码,这样我们就可以找出你做错了什么。有一种更新方法可以通过编程来设置年份,而不是像我写的示例代码那样对其进行编码?我的示例使用了一种原始方法。我很肯定你能自动拿到年终奖。检查NSDate和NSCalendar文档。
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Day, .Month, .Year, .Hour, .Minute, .Second, .Nanosecond], fromDate: date)
let now = NSCalendar.currentCalendar().dateWithEra(1, year: components.year, month: components.month, day: components.day, hour: components.hour, minute: components.minute, second: components.second, nanosecond: components.nanosecond)!
let newYears = NSCalendar.currentCalendar().dateWithEra(1, year: components.year, month: 12, day: 31, hour: 01, minute: 00, second: 00, nanosecond: 00)!
let units: NSCalendarUnit = [.Day, .Month, .Year, .Hour, .Minute, .Second]
let difference = NSCalendar.currentCalendar().components(units, fromDate: now, toDate: newYears, options: [])
let seconds = difference.second