swift获取一周时间

swift根据当前时间获取一周时间

func GetWeeksDate() -> [Date]? {
    //当前时间
    let currentDate = Date()
    let calender = Calendar.current
    var comp = calender.dateComponents([.year, .month, .day, .weekday], from: currentDate)

    //当前时间是几号、周几
    let currentDay = comp.day
    let weeKDay = comp.weekday

    //如果获取当前时间的日期和周几失败,返回nil
    guard let day = currentDay, let week = weeKDay else {
        return nil
    }

    //由于1代表的是周日,因此计算出准确的周几
    var currentWeekDay = 0
    if week == 1 {
        currentWeekDay = 7
    } else {
        currentWeekDay = week - 1
    }

    //1 ... 7表示周一到周日
    //进行遍历和currentWeekDay进行比较,计算出之间的差值,即为当前日期和一周时间日期的差值,即可计算出一周时间内准备的日期
    var dates: [Date] = []
    for index in 1 ... 7 {
        let diff = index - currentWeekDay
        comp.day = day + diff
        let date = calender.date(from: comp)
    
        //由于上述方法返回的Date为可选类型,要进行判空处理
        if let _ = date {
            dates.append(date!)
        }
    }

    //返回时间数组
    return dates
}

和朋友聊天中谈到有个需求需要一周内的时间,因此就找了下资料,自己写了下。具体使用要结合自己的需求环境,思想是相通的。如有遗漏,还望指正。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,774评论 25 709
  • 自从在电影院看过陈导的《无极》后,再也没有进影院看过国产电影。也因此错过了一大批其实很不错的电影,比如《集结号》...
    杰林森阅读 420评论 0 0
  • 轮回尘世,繁华落尽。谁是谁眉间花,意矜矜,色清清。谁对谁说执子之手,花事静好。不再相信什么样的奇迹……爱情是很美,...
    叶绿枫情阅读 236评论 0 2
  • 1.RunTime runtime:运行时机制 是一套比较底层的纯C语言API,属于一个C语言库 平时编写的OC代...
    肉肉要次肉阅读 403评论 0 0