ios - 获取一周的工作日和日期

标签 ios swift nsdate

我正在开发一个需要创建每周日历的应用程序。为此,我需要本周的日期和日期(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/

相关文章:

ios - Objective-C:像 2014-02-02T20:55:31.555Z 这样的日期的日期格式是什么

swift - 获取给定 ISO 8601 日历年的周数

ios - 将 InternetDateTimeString 转换为 NSDate

javascript - 我如何才能通过执行负载中包含的操作来对 APNS 推送消息采取行动

ios - 我需要我没有的设备的 iOS 屏幕截图

swift - 如何在 RxSwift 中组合多个 Observable

ios - 如何制作一个自动调整的UiTextField Frame

iOS Mapkit - 如何将用户的位置偏移指定量

iphone - 无法在真实 iPhone 中调试

ios - 在 UITableView 中测试呈现的 UITableViewCell