如何使用Swift在特定日期显示文本?

时间:2015-10-01 22:28:03

标签: ios swift nsdate

我目前正在尝试在特定日期(万圣节)显示字符串。我已粘贴下面使用的代码:

 var dateComponents = NSDateComponents()
    var calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)
    var currentDate = NSDate()
    var halloweenDate = calendar?.dateFromComponents(dateComponents)
    dateComponents.day = 1 
    // I used 1 as the day only for testing
    dateComponents.month = 10 
    dateComponents.year = 2015

然后我创建了这个If语句,以查看当前日期是否等于halloweenDate。

    if currentDate == halloweenDate {
        println("Happy Halloween!") 

    }

我知道println()不会在屏幕上显示文字,我只是用它来测试

我不确定我做错了什么或离开了。

这是我到目前为止所拥有的。作为一个相当新的程序员,这看起来会起作用,但正如我所发现的,如果看起来很容易,那可能就错了

感谢。

4 个答案:

答案 0 :(得分:2)

在halloweenDate上调用dateFromComponent之前设置dateComponent的值。

答案 1 :(得分:0)

欢迎来到SO。你的问题有点模糊。

如果您的应用程序恰好在相关日期启动/带到前台,那么您可以使用一些日期数学来识别事实并显示警报。

如果您的应用未投放,那么您最好的选择是在目标日期发布带有开火日期的本地通知。然后当系统周围的日期滚动时会向用户显示一条消息,如果用户点击它,您的应用程序将会启动。

上述两种方法都需要一些设置。

你能澄清一下你想做什么吗?

答案 2 :(得分:0)

您希望获取当前日期的月份和日期组件,并将它们分别与10和31进行比较,如下所示:

// This is in Swift 2
let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!
let now = NSDate()
let nowComponents = calendar.components([.Month, .Day], fromDate: now)
if nowComponents.month == 10 && nowComponents.day == 31 {
  print("Happy Halloween!")
}

答案 3 :(得分:-1)

请使用NSDateFormatter。 例如:

var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"

var strDate = "01/10/2015"
var currentDate = dateFormatter.dateFromString(strDate)

它适合你。