注意:我是一名新的 Swift 程序员,如果你愿意的话,也可以说是 NOOB。
我正在创建一个学校时间表应用程序,仅供个人用来练习编码。然而,我们学校实行两周时间表系统,共 10 天,标记为 1 到 10。我想知道是否有人对如何计算出当前日期是第一天、第九天还是第四天有一些想法。我知道我可以使用 if 语句来表示日期,但这需要很长时间,并且需要手动输入日期。我怎样才能让应用程序跳过周末来记录今天是哪一天? 编辑 - 我可能有 14 天,第 6、7、13 和 14 天是空的。
例如: 当前日期是 10 月 4 日,这是第一天。我希望该应用程序能够计算出当前日期是时间表中的哪一天。然后,这将加载适当的日期(例如科目、教师、教室)。第一天是星期一,第二天是星期二,五日是星期五,六日是星期一,十日是星期五。我可以有某种排类系统吗?很抱歉,如果问题含糊不清,请告诉我是否需要澄清。 我已经花了好几个星期的时间来修复这个问题,所以我决定寻求帮助。任何指导将不胜感激,因为我正处于死胡同!
非常感谢
最佳答案
我插入到此示例中的数字可能不符合您的要求,但请将此视为一种策略。 (在本例中,使用 1 到 14 的循环。如果您希望得到 1 到 10,您可以进行减法并在“糟糕”的日子抛出不同的错误。)
class CyclicDay {
enum CyclicDayError: ErrorType {
case InvalidStartDate
}
lazy var baseline: NSDate? = {
// Set up some start date that matches day 1
var components = NSDateComponents()
components.day = 6
components.month = 9
components.year = 2015
return NSCalendar.currentCalendar().dateFromComponents(components)
}()
func dayOfCycle(testDate: NSDate) throws -> Int {
if let start = baseline {
// Convert difference to days
let interval = testDate.timeIntervalSinceDate(start)
let days = interval / (60 * 60 * 24)
// Convert to value 1..14 to position in a 2-week cycle
return Int(days % 14) + 1
}
throw CyclicDayError.InvalidStartDate
}
}
// Test today
let cd = CyclicDay()
let day = try cd.dayOfCycle(NSDate())
关于swift - 在 Swift 中设置两周时间表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32933137/