Skip to content

Instantly share code, notes, and snippets.

@michaelevensen
Created January 26, 2018 10:12
Show Gist options
  • Save michaelevensen/baf0768b98b6823c465f5aa9096b8e13 to your computer and use it in GitHub Desktop.
Save michaelevensen/baf0768b98b6823c465f5aa9096b8e13 to your computer and use it in GitHub Desktop.
Start and end of week with Date.
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)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment