[英]Start and end date of next week swift
I need to get date like "31 of January - 6 of February"我需要得到像“1 月 31 日 - 2 月 6 日”这样的日期
I used next code:我使用了下一个代码:
let calendar = Calendar(identifier: .gregorian)
let dateFormatter = DateFormatter()
let weekday = 1
let sundayComponents = DateComponents(calendar: calendar, weekday: weekday)
let nextSunday = calendar.nextDate(after: Date(), matching: sundayComponents, matchingPolicy: .nextTimePreservingSmallerComponents)
I need to take all this period from Monday to Sunday我需要从周一到周日度过这段时间
You can use dateInterval(of:start:interval:for:)
:您可以使用
dateInterval(of:start:interval:for:)
:
let formatter = DateFormatter()
let calendar: Calendar = .current
let now = Date()
let weekFromNow = calendar.date(byAdding: .weekOfYear, value: 1, to: now)!
var start = weekFromNow
var interval: TimeInterval = 0
guard calendar.dateInterval(of: .weekOfYear, start: &start, interval: &interval, for: weekFromNow) else { return }
let end = calendar.date(byAdding: .day, value: -1, to: start.addingTimeInterval(interval))!
// or let end = start.addingTimeInterval(interval - 1)
// or let end = calendar.date(byAdding: .day, value: 6, to: start)!
print(formatter.string(from: start), "-", formatter.string(from: end))
This will honor the “start of week” on your device.这将尊重您设备上的“一周开始”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.