【问题标题】:Swift - Print what the current week of the year isSwift - 打印一年中的当前周是什么
【发布时间】:2018-09-03 09:42:09
【问题描述】:

我需要一种方法来打印今年到目前为止的周数。
我设法打印了天数和月数(请参见下面的代码)。
但无法弄清楚如何在总周数内做同样的事情。

今年到目前为止的总天数:

let dateDay = Date()
                        let dateFormatterDay = DateFormatter()
                        dateFormatterDay.dateFormat = "DD"
                        let dateByDay = dateFormatterDay.string(from: dateDay)
                        print(dateByDay)

今年到目前为止的总月数:

 let dateMonth = Date()
                        let dateFormatterMonth = DateFormatter()
                        dateFormatterMonth.dateFormat = "MM"
                        let dateByMonth = dateFormatterMonth.string(from: dateMonth)
                        print(dateByMonth)

【问题讨论】:

    标签: swift date week-number


    【解决方案1】:

    试试下面的代码 sn-p。它是用 Swift 3 和 Swift 4 编写的。

    let calendar = Calendar.current
    let weekOfYear = calendar.component(.weekOfYear, from: Date())
    print(weekOfYear)
    

    这将打印一年中的总周数。

    【讨论】:

    • 成功了!我以前曾尝试过使用“calendar.component”,但从未设法让它工作。这是完美的,谢谢!
    • @Swift123 最欢迎 :)
    【解决方案2】:

    用这个作为今天的日期:

    Calendar.current.ordinality(of: .weekOfYear, in: .year, for: Date())!
    

    同样,您可以在一年中的某一天使用它:

    Calendar.current.ordinality(of: .day, in: .year, for: self)!
    

    或当月:

    Calendar.current.ordinality(of: .month, in: .year, for: self)!
    

    您也可以将这些定义为Date 上的扩展:

    extension Date {
        public var dayOfYear: Int {
            return Calendar.current.ordinality(of: .day, in: .year, for: self)!
        }
        public var weekOfYear: Int {
            return Calendar.current.ordinality(of: .weekOfYear, in: .year, for: self)!
        }
        public var monthOfYear: Int {
            return Calendar.current.ordinality(of: .month, in: .year, for: self)!
        }
    }
    
    let nowDate = Date() //"Sep 3, 2018 at 10:54 AM"
    nowDate.dayOfYear    //246
    nowDate.weekOfYear   //36
    nowDate.monthOfYear  //9
    

    【讨论】:

      【解决方案3】:
      extension Date{
          var weekOfYear: Int {
              return Calendar.current.component(.weekOfYear,  from: self)
          }
      }
      

      用法:

      print("WeakOfYear :: ", Date().weekOfYear)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 2013-12-14
        • 2014-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多