ios - 如何在CollectionView中快速设置从周一到周六的工作日日期

标签 ios swift weekday

我必须在 CollectionView 中显示从周一到周六的工作日日期。在本周末之前,我必须仅显示工作日日期。我的任务图片Image 。请帮助/建议我如何完成这项任务。

我正在获取工作日,但从当天开始,但我需要从星期一开始日期,

func arrayOfDates() -> NSArray {

        let numberOfDays: Int = 6
        let formatter: DateFormatter = DateFormatter()
        formatter.dateFormat = "dd"
        let startDate = Date()
        let calendar = Calendar.current
        var offset = DateComponents()
        var dates: [Any] = [formatter.string(from: startDate)]

        for i in 1..<numberOfDays {
            offset.day = i
            let nextDay: Date? = calendar.date(byAdding: offset, to: startDate)
            let nextDayString = formatter.string(from: nextDay!)
            dates.append(nextDayString)
        }
        return dates as NSArray
    }

最佳答案

试试这个

func formattedDaysInThisWeekNet() -> [String]
{
    // create calendar
    let calendar = NSCalendar(identifier: NSCalendar.Identifier.gregorian)!

    // today's date
    let today = NSDate()

    let weekday = calendar.component(.weekday, from: today as Date)
    let beginningOfWeek : NSDate
    if weekday != 2 { // if today is not Monday, get back
        beginningOfWeek = calendar.nextDate(after: today as Date, matching: .weekday, value: 1, options: [.matchNextTime, .searchBackwards])! as NSDate
    } else { // today is Monday
        beginningOfWeek = calendar.startOfDay(for: today as Date) as NSDate
    }
    var formattedDays = [String]()
    for i in 0..<7 {
        let date = calendar.date(byAdding: .day, value: i, to: beginningOfWeek as Date, options: [])!
        formattedDays.append(formatDate(date: date as NSDate))
        let firstDate = calendar.date(byAdding: .day, value: 0, to: beginningOfWeek as Date, options: [])!
        let lastDate = calendar.date(byAdding: .day, value: 6, to: beginningOfWeek as Date, options: [])!
        let fullString = "\(formatDateFull(date: firstDate as NSDate)) - \(formatDateFull(date: lastDate as NSDate))" as String
        fulldateLbl.text = "<  \(fullString)  >"
        print(fullString)
    }
    return formattedDays
}

关于ios - 如何在CollectionView中快速设置从周一到周六的工作日日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52071263/

相关文章:

ios - Xib 中的 SubViews MainView 为什么不显示在 iOS 中?

html - 在 iPad 中边距居中的按钮向左移动

ios - 在NSMutableArray中删除

java - 如何从整个月的日历中跳过周末(周六和周日)

javascript - 将 panright 与 Hammer.js 一起使用时如何仅触发一次方法?

ios - 如何将新对象插入到实体中并设置该对象与另一个实体的现有对象的关系?

swift 返回 "The view hierarchy is not prepared for the constraint"

ios - ZIPFoundation:通过数据提供程序将大 PNG 写入存档时出现问题

Python:从明文(外语)工作日获取日期

python - 这个语法有替代品吗?