2016-01-20 140 views
0

我们正在努力制作一个保持用户计划的应用程序。他想要一个简单的tableview为每一天显示不同的部分,并且他希望当天的所有任务按顺序显示。这里是使用的数据库模式:如何根据日期查询'任务'记录

TASK_ID , TASK_NAME(STRING), TASK_DURRATION(AMOUNT OF TIME IN MILI), TASK_START_TSTAMP(EPOCH TIMESTAMP), TASK_END_TSTAMP(EPOCH TIMESTAMP), TASK_COMPLETED(BOOL) 

我将如何开始查询白天的任务?就像我想在未来7天内返回所有任务一样。

我必须:

•允许用户与一个特定的时间和在某些情况下,具体的开始时间 •查询未来7天的按日期分块任务的创建任务。

那么我该怎么做?找到一种方法来获得未来7天的数组,循环并为每天计划的所有任务运行查询?

enter image description here

+0

这不是一个模式。这是列名称列表。 – rmaddy

+0

其:以轮廓或模型的形式表示计划或理论。 aka架构的定义,但谢谢你的无益回答和不必要的投票。 – ChuckKelly

+0

我的观点是,当你不告诉我们任何有用的细节时,人们如何能够提供帮助?很难提供建议,在没有晚上的情况下进行查询,以了解数据类型或样本数据或期望结果等最基本的基础知识。你的问题被拒绝投票,因为它缺乏足够的细节。它也没有显示你的努力。 – rmaddy

回答

1

要计算startDateendDate在你的SQL中使用的历法NSCalendar计算中使用。

比方说,它是15:24 1月20日,并希望在未来七天的所有任务,直至15:24 1月27日,你可以这样做:

let startDate = NSDate() 
let endDate = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: 7, toDate: startDate, options: [])! 

然后建立自己的使用这些开始和结束日期进行查询。

但是,如果你想随时随地定于1月20日的所有事件经过1月26日(含),你可以使用类似:

let calendar = NSCalendar.currentCalendar() 
let components = calendar.components([.Day, .Month, .Year], fromDate: NSDate()) 
let startDate = calendar.dateFromComponents(components)! 
let endDate = calendar.dateByAddingUnit(.Day, value: 7, toDate: startDate, options: [])! 

然后,你可以使用startDateendDate建立你的SQL语句,如果你将它们存储为UNIX epoch double值:

let sql = "select * from TASKS where TASK_START_TSTAMP >= \(startDate.timeIntervalSince1970) and TASK_START_TSTAMP < \(endDate.timeIntervalSince1970)" 
+0

好吧,至少给我一些正确的研究方向的线索,但这个NSCalendar,这是连接到你的手机上的苹果日历应用程序?
如果是这样,使用它将使我的生活更轻松/使这更快或可能增加更多的工作,他只是支付了一个非常裸露的骨头MVP。 – ChuckKelly

+0

正确,它使用属于Cocoa Touch的'NSCalendar'类。请注意,我更新了答案以显示示例SQL以检索存储在“unixepoch”数值中的基于时间戳。 – Rob

+0

所以这里的最终目标是这样的:http://imgur.com/JnaVu97 它基本上按顺序在tableview中显示接下来的7天计划任务,每个日期都在它自己的tableview部分,没有特定的开始时间必须自动“安装”到计划中。 您会推荐在接下来的7天内查询所有计划任务,然后循环遍历它们以添加关于在哪个部分下应执行哪些任务的数据,或者您会推荐执行7个查询(每个日期一个) – ChuckKelly