1
我想要統計一個人在一天中喝一杯水的時間(一個小時的時間間隔內)的次數,我無法確定如何正確構建這個數據結構,預期數據將是這個樣子:Swift更復雜的數組字典
day1 = [hour interval: [time, time, time], hour interval: [time], hour interval: [time], hour:[time]]
它打印出一個空數組......到目前爲止,我有這樣的:
var counts = [String:Array<NSDate>]()
var dict = [[NSDate:Array<[String:Array<NSDate>]>]]()
//datesArray -> is an array of dates from something like monday to friday
/*
datesArray:
2016-07-23
2016-07-24
2016-07-25
2016-07-26
2016-07-27
2016-07-28
2016-07-29
2016-07-30
*/
for date in datesArray {
//tempDoses has the times when the user took the glass of water
/*
tempDoses:
2016-07-28 23:50:50 +0000
2016-07-26 13:06:57 +0000
2016-07-25 08:47:52 +0000
2016-07-25 08:46:47 +0000
2016-07-25 08:46:06 +0000
2016-07-24 23:25:07 +0000
2016-07-24 14:18:11 +0000
2016-07-24 13:58:35 +0000
2016-07-22 09:10:59 +0000
2016-07-22 09:10:26 +0000
2016-07-22 09:09:28 +0000
*/
for temp in tempDoses {
if calendar.isDate(date, inSameDayAsDate: temp.logTime)
let dateformatter = NSDateFormatter()
dateformatter.dateFormat = "HH:mm"
let myDate = dateformatter.stringFromDate(temp.logTime)
let h = self.getHour(myDate)
for m in counts {
var o = m
if o.0 == h {
o.1.append(temp.logTime)
}
}
}
}
if counts.count > 0 {
dict.append([date:[counts]])
counts.removeAll()
}else{
dict.append([date:[]])
}
}
預期結果:
2016-07-21 = []
2016-07-22 = ["10": [09:10, 09:13]]
2016-07-23 = []
2016-07-24 = ["15": [14:18], "14": [13:12, 13:56]]
2016-07-25 = ["09": [08:33, 08:40], "00": [23:10]]
2016-07-26 = ["14": [13:33]]
2016-07-27 = []
2016-07-28 = []
要只保存搞清楚什麼源樣子的麻煩,您可以編輯您的問題,包括預期輸入和輸出? –
好吧,對不起,我很困惑 – Bruno
我也發表了一些意見 – Bruno