如何计算Swift中的天数,月数,天数?

时间:2017-03-23 06:14:45

标签: ios iphone swift

我需要找几天,几年,几天。例如,370天,我需要转换为1年0个月& 5天。天数可以四舍五入到最接近的月份。例如,如果天数小于15,那应该是0个月。如果超过15天,现在应该是1个月

2 个答案:

答案 0 :(得分:2)

假设你知道开始和/或结束日期,而不仅仅是它们之间的距离,你可以使用它:

  

date​Components(_:​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开始,您获得了yearsmonthsdays以及未获得的内容。

答案 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
}