【发布时间】:2014-10-19 13:56:59
【问题描述】:
我有 2 个日期选择器。一个用于选择开始日期,另一个用于选择到期日期。做出选择后,我将日期转换为字符串格式并将结果存储在两个文本字段中。
这是我保存到数据库的方式:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMMM d" // e.g. September 15
let sDate = dateFormatter.dateFromString(startDateField.text) as NSDate!
let eDate = dateFormatter.dateFromString(expiryDateField.text) as NSDate!
activity["startDate"] = sDate
activity["expiryDate"] = eDate
activity.saveInBackgroundWithBlock({ (success: Bool, error: NSError!) -> Void in
我打算做的是有一个表格视图显示 2 个部分:一个显示活动的活动,另一个显示过期/不在日期范围内的活动。
我想我可以通过获取当前日期并检查它是否在开始日期和到期日期范围内来做到这一点。
我从上面保存的日期在解析中显示如下:
问题是,我不想考虑年份或时间。唯一重要的是月份和日期。例如,一个活动可以在每年的 9 月 15 日到 12 月 20 日之间运行一次。
我需要一种方法来检查当前日期是否在这两个日期之内,并考虑当月的某一天(例如 15 日)。因此,今天的日期是 10 月 19 日,如果活动的开始日期是 9 月 15 日并且到期日期是 12 月 20 日,则该活动将在范围内,但如果到期日期是 10 月 18 日或开始日期是 10 月 25 日,则活动将超出范围/操作。
总结一下:
我将在表格视图中显示两个部分。一个有活跃的活动,另一个有非活跃的停业活动。
如何获取我存储的开始日期和到期日期并轻松检查当前日期是否在其范围内?
对于用户选择开始日期或到期日期的情况,我需要检查当前日期是否大于/小于开始日期(以便能够决定是否应该显示活动)或者当前日期是否大于/小于到期日期(能够决定活动是否已超过其到期日期。
如果我可以将 1 和 2 合并到一个函数中并在表格视图中使用它,那就太好了。
有兴趣了解更有经验的程序员如何实现这一目标。
【问题讨论】:
-
一种方法是使用
NSDateComponents。
标签: cocoa-touch date swift nsdate date-formatting