Swift - 打印今年的当前星期几

标签 swift date week-number

我需要一种方法来打印今年到目前为止的周数。
我已经成功打印了天数和月数(参见下面的代码)。
但无法弄清楚如何在总周数内执行相同的操作。

今年迄今为止的总天数:

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 4 和 Swift 5 编写的。

let currentDate = Date() 
print(currentDate.dayOfYear)   // Day of Year
print(currentDate.weekOfYear)  // Week of Year
print(currentDate.monthOfYear) // Month of Year

这将分别打印一年中的总天数、周数和月份数。

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)!
    }
}

关于Swift - 打印今年的当前星期几,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52147120/

相关文章:

swift - 从 firebase auth b/c 删除时出现 FIRAuthErrorDomain Code=17014 错误,但未重新登录我的 iOS 应用程序(swift)?

java - 如何检查日期是否有效

mysql - Oracle - 返回具有 max_date 重复项的行

sql - Oracle SQL : Query results from previous X isoweeks () (where X might be > 52)

从具有自定义一周开始的日期计算一周的算法? (对于 iCal)

ios - 如何消除移至上一屏幕时更改导航栏颜色的延迟?

swift - 参数标签 '(stringInterpolationSegment:)' 不匹配任何可用的重载

json - swift - JSON 字典解析

java - 将字符串格式转换为

date - 给定 ISO 8601 周数,在 LibreOffice Calc 电子表格中获取该周第一天的日期