我需要找几天,几年,几天。例如,370天,我需要转换为1年0个月& 5天。天数可以四舍五入到最接近的月份。例如,如果天数小于15,那应该是0个月。如果超过15天,现在应该是1个月
答案 0 :(得分:2)
假设你知道开始和/或结束日期,而不仅仅是它们之间的距离,你可以使用它:
的 dateComponents(_:from:to:) 强>
返回两个日期之间的差异。声明
func dateComponents(_components: Set<Calendar.Component>, from start: Date, to end: Date) -> DateComponents
参数
部件
要比较哪些组件。
启动
开始日期。
端
结束日期。
示例:
let calendar = Calendar(identifier: <whatever calendar you need>)
let components: DateComponents = calendar.dateComponents([.calendar, .year, .month, .day], from: startDate, to: endDate)
然后从DateComponents
开始,您获得了years
,months
和days
以及未获得的内容。
答案 1 :(得分:1)
func numberOfDaysInCurrentYear() -> Int {
let calendar = Calendar.init(identifier: .gregorian)
let interval = calendar.dateInterval(of: .year, for: Date.init())!
let days = calendar.dateComponents([.day], from: interval.start, to: interval.end).day!
return days
}