注意:我是一个新的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())