使用NSDate和Swift,我想创建一个在一周的特定日期触发的if语句。
具体来说,当前一天是星期一时,名为labelone
的标签的文字应为"祝您有个愉快的一周"当其他任何一天labelone
被隐藏时。
我知道从标签中更改文本并使其隐藏的代码,但是如何以这种方式使用NSDate构造if语句?
这是我尝试过的:
let today = NSDate()
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let components = calendar!.components([.Weekday], fromDate: today)
if components.weekday == 2 {
print("Hello Monday")
} else {
print("It's not Monday")
}
有更好的方法吗?
答案 0 :(得分:10)
使用Calendar
/ NSCalendar
执行日历计算:
let today = Date()
let calendar = Calendar(identifier: .gregorian)
let components = calendar.dateComponents([.weekday], from: today)
if components.weekday == 2 {
print("Hello Monday")
} else {
print("It's not Monday")
}
let today = NSDate()
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let components = calendar!.components([.Weekday], fromDate: today)
if components.weekday == 2 {
print("Hello Monday")
} else {
print("It's not Monday")
}
周一,周二等仅在公历中定义。有些像中国农历一样没有工作日的概念。
答案 1 :(得分:1)
这就是我完成任务的方式。
var CurrentDate = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone()
dateFormatter.dateFormat = "ccc"
let Monday = dateFormatter.stringFromDate(CurrentDate)
let isMonday = "Mon"
if Monday == isMonday {
print("It's Monday")
}
else {
let otherDay = dateFormatter.stringFromDate(CurrentDate)
print(otherDay)
}