在Swift中设置两周的时间表



注意:我是一个新的Swift程序员,如果你愿意,一个新手。

我正在创建一个学校时间表应用程序,只是为了个人使用来练习我的编码。然而,我们学校实行的是两周的时间表制度,10天,从1到10。我想知道是否有人有一些想法,我如何才能弄清楚当前的日期是第一天还是第九天或第4天。我知道我可以使用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())

最新更新