这是我第一次使用swift / xcode编程,这是我的第五天,请客气。
我已经创建了一个格式为[[A],[B],[C],[D],[E],[F]],...的数组,以用作查找表。要求是获取A-AM / PM和B,C-开始时间,并检查当前时间(小时,分钟)是否在D,E-结束时间]的范围内>,如果这样,请在UILabel上打印message F。
例如,如果现在是3.04,我的程序将使用下表打印“去睡觉,我会在4点时告诉您”
// [[A], [B], [C], [D], [E], [F]], ... let messageArray : Array = [ [["AM"], [00], [00], [00], [01], ["it's \nmidnight"]], [["AM"], [00], [02], [02], [59], ["it's very late (or early), \nto be up"]], [["AM"], [03], [00], [03], [01], ["are you ready \nfor the 03 am call?"]], [["AM"], [03], [02], [03], [59], ["go to sleep \ni'll let you know when it's \n4"]],...
我知道如何从当前时间获得小时和分钟。
let date = Date() var calendar = Calendar.current let hour = calendar.component(.hour, from: date) let minute = calendar.component(.minute, from: date)
并且我需要一个外部和内部循环来遍历矩阵的每个x,y。对于每个单元格,我需要提取数组并采用前4个元素-AM / PM,startHour,startMinute,endHour,endMinute,以检查当前的小时,分钟是否在这些范围内;但不确定我是否了解多维数组解析。我尝试了各种方法,并尝试在网上查找,但仍在挣扎。
我什至应该使用数组,还有其他更有效的数据结构吗?
任何帮助或建议,我们将不胜感激。
谢谢,
这是我第一次使用swift / xcode编程,这是我的第五天,请客气。我创建了一个格式为[[A],[B],[C],[D],[E],[F]],...的数组,以用作查找表。要求是...
使用类型为[(Hour,Minute):String]的字典
这有点棘手,因为Date
同时对日期和时间进行建模,并且没有同行会仅对时间或日期进行建模。我通过使用整数元组即兴创作。这可能不是最好的解决方案,但是这是我能提出的最好的解决方案(欢迎提出建议!)
您可以创建自己的结构,如下所示:
[这里是ClosedRange的一个很酷的答案。它允许您创建自定义时间范围,并且可以根据您选择的时间为您提供多条消息。