注意:我是一名新的Swift程序员,如果你愿意的话,我就是NOOB。
我正在创建一个学校时间表应用程序,仅供个人使用以练习我的编码。但是,我们学校采用两周时间表系统,为期10天,标记为1到10。我想知道是否有人对如何确定当前日期是第一天还是第九天或第4天有一些想法。我知道我可以使用if语句来表示日期,但这需要很长时间,并且需要手动输入日期。我怎么能让应用程序记住它是哪一天,跳过周末? 编辑 - 我可能有14天,第6,7,13和14天是空的。
例如: 目前的日期是OCT 4,这是第一天。我希望该应用程序能够计算出当前日期的时间表。然后,这将加载适当的一天(例如主题,教师,课堂)。第一天是星期一,二是星期二,五星期五,六星期一,十星星期五。我可以使用某种排班系统吗?
如果问题含糊不清,我很抱歉,如果需要澄清,请告诉我。 我已经做了几个月的修复工作,所以我决定转向帮忙。任何指导都会非常感激,因为我走到了尽头!
非常感谢
答案 0 :(得分:0)
我插入此示例的数字可能与您的要求不符,但请将此视为策略。 (在这种情况下,使用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())