Date日期的加减

通过Calendar实现日期加减。
主要是通过DateComponents组件设置要加减的年月日
下面举几个例子

  • 获取上一天
extension Date {
    
    func kk_lastDay() -> Date? {
        //.gregorian代表公历
        let calendar = Calendar(identifier: .gregorian)
        
        var components = calendar.dateComponents([.year, .month, .day], from: self)
        
        /*
         * value是int型,component对应dateComponents(上一行代码)设置,
         * 设置了year,month,day中的哪个就设置哪个
         * value负数代表向前推几年,几月,几天,正数代表向后推几年,几月,几天。按需设置
         */
        components.setValue(0, for: .year)
        components.setValue(0, for: .month)
        components.setValue(-1, for: .day)
        
        let lastDay = calendar.date(byAdding: components, to: self)
        
        return lastDay
    }
 }
  • 获取下一个月(Components也可以只设置其中一个,按需求来)
    func kk_nextMonth() -> Date? {
        //.gregorian代表公历
        let calendar = Calendar(identifier: .gregorian)
        
        var components = calendar.dateComponents([.month], from: self)
        
        /*
         * components只用了.month来生成,所以只设置month的值就好了
         * 这里是获取下一个月,所以.month的value = 1,如果是上两个个月value = -2
         */
        components.setValue(1, for: .month)
        
        let nextMonth = calendar.date(byAdding: components, to: self)
        
        return nextMonth
    }

你可能感兴趣的:(Date日期的加减)