美文网首页
Swift时间交集判断

Swift时间交集判断

作者: 鄒賢 | 来源:发表于2023-03-16 11:16 被阅读0次
        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时间交集判断

          本文链接:https://www.haomeiwen.com/subject/lwfqrdtx.html