【问题标题】:Swift: How to get weekday from nsdateSwift:如何从 nsdate 获取工作日
【发布时间】:2016-05-19 10:57:42
【问题描述】:

我试图在应用程序中创建一个日历视图,我需要知道的一个项目是该月的第一天所在的 Int 值。所以我可以正确渲染其余部分。

我有以下代码

var CurrentDisplayDate      = NSDate()
var calendar                = NSCalendar.currentCalendar()
let DateComponents      = calendar.components([.Hour, .Month, .Year, .Weekday], fromDate: CurrentDisplayDate)
let StartWeekDay        = DateComponents.weekday

但是它一直给我当天的工作日而不是本月的第一天。

谢谢

【问题讨论】:

  • CurrentDisplayDate 等于当天还是当月的第一天?
  • 它将给出当前日期的工作日,因为 NSDate() 表示当前日期 (19/05/2016)。如果您想要当月的第一个工作日,请保留当前月份和年份,并将日期更改为 1,即 (1/05/2016)。它将产生当月 1 日的工作日。

标签: swift nsdate


【解决方案1】:

我认为你想要的是这样的......

var calendar = NSCalendar.currentCalendar()
let today = NSDate()
let dateComponents = calendar.components([.Day, .Month, .Year], fromDate: today)
dateComponents.day = 1 // ** set the day of month to 1
// Get a real date back from the modified components
if let startDate = calendar.dateFromComponents(dateComponents) {
    // and extract the weekday from *that* date
    let startComponents = calendar.components([.Weekday, .Month, .Year], fromDate: startDate)
    let startWeekDay = startComponents.weekday
}

【讨论】:

    【解决方案2】:

    试试这个:

    let dateFormatter = NSDateFormatter()
    let date = NSDate()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: date)
    
    let month = components.month
    let year = components.year
    
    let startOfMonth = ("\(year)-\(month)-01")
    print(startOfMonth)
    

    你也可以用另一种方式来做

        let dateFormatter = NSDateFormatter()
        let date = NSDate()
        dateFormatter.dateFormat = "yyyy-MM-dd"
        let calendar = NSCalendar.currentCalendar()
        let components = calendar.components([.Year, .Month], fromDate: date)
        let startOfMonth = calendar.dateFromComponents(components)!
        print(dateFormatter.stringFromDate(startOfMonth))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-25
      • 2011-04-01
      • 2011-08-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多