import time def findStart(timeaircond="timeaircond", timeaircond_last="", ahead=0): timeaircond_last_stemp = int( time.mktime(time.strptime(timeaircond_last, "%Y-%m-%d %H:%M:%S"))) timeaircond_stemp = [ int(time.mktime(time.strptime(each_time, "%Y-%m-%d %H:%M:%S"))) for each_time in timeaircond] if ahead < len(timeaircond) - 1: time_substruct = [1000000 if timeaircond_stemp[ each_timeaircond_stemp] - timeaircond_last_stemp <= 0 or each_timeaircond_stemp < ahead else timeaircond_stemp[ each_timeaircond_stemp] - timeaircond_last_stemp for each_timeaircond_stemp in range(len(timeaircond_stemp))] else: time_substruct = [ 1000000 if timeaircond_last_stemp - timeaircond_stemp[ each_timeaircond_stemp] <= 0 or each_timeaircond_stemp < ahead else timeaircond_last_stemp - timeaircond_stemp[ each_timeaircond_stemp] for each_timeaircond_stemp in range(len(timeaircond_stemp))] index = time_substruct.index(min(time_substruct)) return index def aircondAnalysis(statesaircond="", statesaircond_off="", timeaircond="", timeaircond_off="", eachdata_pow="", eachdata_cur="", timer=""): timeaircond_off_chang = [each.split(" ")[1][:-3].split(":") for each in timeaircond_off] timeaircond_off_hour = [each[0] for each in timeaircond_off_chang] aircondRunStages = [] aircondRunStages.append(timeaircond[0]) for each_off in range(1, len(timeaircond_off)): if int(timeaircond_off_hour[-1]) - int( timeaircond_off_hour[-2]) <= 2 and each_off == len( timeaircond_off_hour) - 1: aircondRunStages.append(timeaircond_off[each_off]) if int(timeaircond_off_hour[each_off]) - int( timeaircond_off_hour[each_off - 1]) <= 2: continue else: if each_off < len(timeaircond) - 1: aircondRunStages.append(timeaircond_off[each_off - 1]) findStart1 = findStart(timeaircond=timeaircond, timeaircond_last=timeaircond_off[ each_off - 1], ahead=each_off) aircondRunStages.append(timeaircond[findStart1]) else: aircondRunStages.append(timeaircond_off[each_off]) return aircondRunStages