美文网首页
swift Date拓展 用于写日历

swift Date拓展 用于写日历

作者: 彼岸花下的暗影 | 来源:发表于2019-05-10 15:04 被阅读0次
public extension Date {
    
    var day: Int {
        return Calendar.current.component(Calendar.Component.day, from: self)
    }
    
    var month: Int {
        return Calendar.current.component(Calendar.Component.month, from: self)
    }
    
    var year: Int {
        return Calendar.current.component(Calendar.Component.year, from: self)
    }
    
    /// 是否在未来
    var isInFuture: Bool {
        return self > Date()
    }
    
    /// 是否在过去
    var isInPast: Bool {
        return self < Date()
    }
    
    /// 是否在本天
    var isInToday: Bool {
        return self.day == Date().day && self.month == Date().month && self.year == Date().year
    }
    
    /// 是否在本月
    var isInMonth: Bool {
        return self.month == Date().month && self.year == Date().year
    }
    
    //获得当前月份第一天星期几
    var weekdayForFirstday: Int {
        var calendar = Calendar.current
        calendar.firstWeekday = 1
        var comp = calendar.dateComponents([.year, .month, .day], from: self)
        comp.day = 1
        let firstDayInMonth = calendar.date(from: comp)!
        let weekday = calendar.ordinality(of: Calendar.Component.weekday, in: Calendar.Component.weekOfMonth, for: firstDayInMonth)
        return weekday! - 1
    }
    
    // 获得一个月总天数
    var daysInMonth: Int {
        return Calendar.current.range(of: Calendar.Component.day, in: Calendar.Component.month, for: self)!.count
    }
    

    /// 获取其他月的数据
    ///
    /// - Parameter poor: 与当前的date相差几个月 (-1---上月,  1---下月)
    /// - Returns: 目标date
    func getOtherMonthDate(_ poor: Int) -> Date {
        var dateComponents = DateComponents()
        dateComponents.month = poor
        return Calendar.current.date(byAdding: dateComponents, to: self)!
    }
    
}

相关文章

  • swift Date拓展 用于写日历

  • python基础:linux的基本命令——系统管理

    1.1.1查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: 1.1.2显示或设置时间:date...

  • Linux命令-系统管理

    1.1.1查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: 1.1.1显示或设置时间:date...

  • Linux命令-系统管理

    <1>查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: <2>显示或设置时间:date 设置时...

  • Linux命令-系统管理

    <1>查看当前日历:calcal命令用于查看当前日历,-y显示整年日历: <2>显示或设置时间:date设置时间格...

  • 无标题文章

    --- title: Swift-把事件写入到日历中 date: 2017-05-31 10:21:14 cate...

  • 1.6linux 命令-系统管理

    1. 查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: 2.显示或设置时间:date 设置时间...

  • Linux命令-系统管理

    1.查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: 2.显示或设置时间:date 设置时间格...

  • day07(2017 10 11)

    Date()案例 时钟 日历

  • js

    日历Date 是系统提供好的 var date=new Date(); 属性: constructor proto...

网友评论

      本文标题:swift Date拓展 用于写日历

      本文链接:https://www.haomeiwen.com/subject/zlsaoqtx.html