我正在寻找一种方法来获得一个月的第一天(在Swift中).我想知道它是星期一,星期二等......通过返回相应的数字.
我尝试了许多解决方案,例如获取NSCalendar组件.weekDay但没有人工作.
Example :
print(getTheFirstDate("2016-2-18"))
// Should return : 0 (because the first day of February 2016 is Monday).
Run Code Online (Sandbox Code Playgroud)
任何帮助将是欣赏.
您需要首先将字符串转换为日期,然后您可以从该日期获得月份和年份组件,并使用NSCalendar方法dateFromComponents查找该月的第一天/日期.找到该日期后,您可以从中提取工作日日期组件.试试这样:
Xcode 8.2.1•Swift 3.0.2
extension Date {
var weekday: Int {
return Calendar.current.component(.weekday, from: self)
}
var firstDayOfTheMonth: Date {
return Calendar.current.date(from: Calendar.current.dateComponents([.year,.month], from: self))!
}
}
extension String {
static var dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
return formatter
}()
var date: Date? {
return String.dateFormatter.date(from: self)
}
}
"2016-2-18".date?.firstDayOfTheMonth.weekday // 2 = Monday (Sunday-Saturday 1-7)
Run Code Online (Sandbox Code Playgroud)
extension NSDate {
var weekday: Int {
return NSCalendar.currentCalendar().component(.Weekday, fromDate: self)
}
var firstDayOfTheMonth: NSDate! {
return NSCalendar.currentCalendar().dateFromComponents(NSCalendar.currentCalendar().components([.Year,.Month], fromDate: self))
}
}
extension String {
var date: NSDate? {
struct Date {
static var formatter: NSDateFormatter = {
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
return formatter
}()
}
return Date.formatter.dateFromString(self)
}
}
"2016-2-18".date?.firstDayOfTheMonth.weekday // 2 = Monday (Sunday-Saturday 1-7)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5809 次 |
最近记录: |