Swift 将日期的工作日与 int 进行比较
Swift compare weekday of a date with a int
我有一个需要验证的 UIDatePicker。我想检查来自 UIDatePicker 的工作日是否是一个特定的 int 值。
我用
@IBAction func validateDateTime(sender: AnyObject) {
var date = self.dateTime.date
let formatterWeekday = NSDateFormatter()
formatterWeekday.dateFormat = "e"
let weekday_string = formatterWeekday.stringFromDate(date)
}
获取工作日,但如何将其转换为 int 以便与其他 int 值进行比较?我试过:
weekday_string.intValue()
但似乎 weekday_string 不支持 intValue 方法。
stringFromDate
returns一个string
。 Swift中string
转int
的方法是toInt()
你可以试试:
weekday_string.toInt()
或者你可以得到工作日 int
如下:
var myDate = self.dateTime.date
let myCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
let myComponents = myCalendar.components(.WeekdayCalendarUnit, fromDate: myDate)
let weekDay = myComponents.weekday
我对 Swift 还不够流利,所以这里是 Objective-C 中的答案。由于您已经有了日期,因此不需要 fiddle 与任何格式化程序。您只需要向日历询问组件:
NSDateComponents *components = [[NSCalendar currentCalendar] components: NSWeekdayCalendarUnit fromDate:date];
// components.weekDay is a number, representing the day of the week.
参见NSCalendar documentation and the NSDateComponents documentation。
为了使其更稳定,使用特定日历而不是当前默认日历通常是个好主意(不同地区的用户可能使用非公历)。因此,您可以使用 [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]
.
而不是 [NSCalendar currentCalendar]
我有一个需要验证的 UIDatePicker。我想检查来自 UIDatePicker 的工作日是否是一个特定的 int 值。
我用
@IBAction func validateDateTime(sender: AnyObject) {
var date = self.dateTime.date
let formatterWeekday = NSDateFormatter()
formatterWeekday.dateFormat = "e"
let weekday_string = formatterWeekday.stringFromDate(date)
}
获取工作日,但如何将其转换为 int 以便与其他 int 值进行比较?我试过:
weekday_string.intValue()
但似乎 weekday_string 不支持 intValue 方法。
stringFromDate
returns一个string
。 Swift中string
转int
的方法是toInt()
你可以试试:
weekday_string.toInt()
或者你可以得到工作日 int
如下:
var myDate = self.dateTime.date
let myCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
let myComponents = myCalendar.components(.WeekdayCalendarUnit, fromDate: myDate)
let weekDay = myComponents.weekday
我对 Swift 还不够流利,所以这里是 Objective-C 中的答案。由于您已经有了日期,因此不需要 fiddle 与任何格式化程序。您只需要向日历询问组件:
NSDateComponents *components = [[NSCalendar currentCalendar] components: NSWeekdayCalendarUnit fromDate:date];
// components.weekDay is a number, representing the day of the week.
参见NSCalendar documentation and the NSDateComponents documentation。
为了使其更稳定,使用特定日历而不是当前默认日历通常是个好主意(不同地区的用户可能使用非公历)。因此,您可以使用 [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]
.
[NSCalendar currentCalendar]