我正在开发一个需要创建每周日历的应用程序。为此,我需要本周的日期和日期(9 月 30 日星期日、10 月 1 日星期一、10 月 2 日星期二等)。有人可以指导我如何实现这一目标吗?
问候
潘卡吉
最佳答案
这是一个简单的函数,可以提取本周所有日期的日期,从本周的星期日到星期六,
func formattedDaysInThisWeek() -> [String] {
// create calendar
let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!
// today's date
let today = NSDate()
let todayComponent = calendar.components([.Day, .Month, .Year], fromDate: today)
// range of dates in this week
let thisWeekDateRange = calendar.rangeOfUnit(.Day, inUnit:.WeekOfMonth, forDate:today)
// date interval from today to beginning of week
let dayInterval = thisWeekDateRange.location - todayComponent.day
// date for beginning day of this week, ie. this week's Sunday's date
let beginningOfWeek = calendar.dateByAddingUnit(.Day, value: dayInterval, toDate: today, options: .MatchNextTime)
var formattedDays: [String] = []
for i in 0 ..< thisWeekDateRange.length {
let date = calendar.dateByAddingUnit(.Day, value: i, toDate: beginningOfWeek!, options: .MatchNextTime)!
formattedDays.append(formatDate(date))
}
return formattedDays
}
func formatDate(date: NSDate) -> String {
let format = "EEE MMMdd"
let formatter = NSDateFormatter()
formatter.dateFormat = format
return formatter.stringFromDate(date)
}
如果你调用方法formattedDaysInThisWeek(),输出是这样的,
["Sun Oct11", "Mon Oct12", "Tue Oct13", "Wed Oct14", "Thu Oct15", "Fri Oct16", "Sat Oct17"]
关于ios - 获取一周的工作日和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33109633/