Current Week Start and End Date

后端 未结 16 1354
轮回少年
轮回少年 2020-11-30 01:56

I want to get the current week start and end date and I also want to use the previous week start and end date and next week of the start and end date in current month.

16条回答
  •  离开以前
    2020-11-30 02:15

    Swift 3+: Simple solution with extension

    extension Date {
        var startOfWeek: Date? {
            let gregorian = Calendar(identifier: .gregorian)
            guard let sunday = gregorian.date(from: gregorian.dateComponents([.yearForWeekOfYear, .weekOfYear], from: self)) else { return nil }
            return gregorian.date(byAdding: .day, value: 1, to: sunday)
        }
    
        var endOfWeek: Date? {
            let gregorian = Calendar(identifier: .gregorian)
            guard let sunday = gregorian.date(from: gregorian.dateComponents([.yearForWeekOfYear, .weekOfYear], from: self)) else { return nil }
            return gregorian.date(byAdding: .day, value: 7, to: sunday)
        }
    
        var yesterdayDate: Date? {
            return NSCalendar.current.date(byAdding: .day, value: -1, to: noon)!
        }
    
        var tommorowDate: Date? {
            return NSCalendar.current.date(byAdding: .day, value: 1, to: noon)!
        }
    
        var previousDate: Date? {
            let oneDay:Double = 60 * 60 * 24
            return self.addingTimeInterval(-(Double(oneDay)))
        }
    
        var nextDate: Date? {
            let oneDay:Double = 60 * 60 * 24
            return self.addingTimeInterval(oneDay)
        }
    
        var noon: Date {
            return NSCalendar.current.date(bySettingHour: 12, minute: 0, second: 0, of: self)!
        }
    
        var month: Int {
            return Calendar.current.component(.month,  from: self)
        }
    }
    

提交回复
热议问题