2016-01-20 66 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