override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let dft = DateFormatter()
dft.dateFormat = "HH:mm"
let times = [["08:30", "12:25"], ["12:33", "15:28"]]
let dynaStartTime = stringToDate(string: "15:29", dateFormat: "HH:mm")
let dynaEndTime = stringToDate(string: "20:00", dateFormat: "HH:mm")
for item in times {
let fixedStartTime = stringToDate(string: item[0], dateFormat: "HH:mm")
let fixedEndTime = stringToDate(string: item[1], dateFormat: "HH:mm")
let result = checkTimesHasOverlap(dynaStartTime: dynaStartTime, dynaEndTime: dynaEndTime, fixedStartTime: fixedStartTime, fixedEndTime: fixedEndTime)
print("\(result)")
}
}
//字符串 -> 日期
func stringToDate(string:String, dateFormat:String) -> Date {
let formatter = DateFormatter()
formatter.locale = Locale.init(identifier: "zh_CN")
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = dateFormat //"yyyy-MM-dd HH:mm:ss"
let date = formatter.date(from: string)
return date ?? Date()
}
/**
* 判断两个时间范围是否有交集
*
* @param dynaStartTime 比较时间段开始时间
* @param dynaEndTime 比较时间段结束时间
* @param fixedStartTime 参考时间段开始时间
* @param fixedEndTime 参考时间段结束时间
* @return
*/
func checkTimesHasOverlap(dynaStartTime: Date, dynaEndTime: Date, fixedStartTime: Date, fixedEndTime: Date) -> Bool {
return !(dynaEndTime < fixedStartTime || dynaStartTime > fixedEndTime);
}
Swift时间交集判断
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 场景: 数据库有有两个字段.开始时间,和结束时间,指定一个时间段(a,b),a表示开始时间,b表示结束时间。看数...