def stopCheckIn(self): if self.t != None: if readini.List != [] : r = readini() clist = r.readIni() leaveTime = clist[0][3] leaveTimeArray = leaveTime.split('-| | :') beginTime = clist[1][3] beginTimeArray = beginTime.split('-| | :') #获得时间的差值 并将其赋给计时器 timedev = (int(beginTimeArray[3]) - int(leaveTimeArray[3])) * 3600 + (int(beginTimeArray[4]) - int(leaveTimeArray[4])) * 60 + \ (int(beginTimeArray[5]) - int(leaveTimeArray[5])) readini.List.pop(0) # 计算后将教师踢出队列 # 先取消上次计时后,再传入新的计时值 self.t.cancel() self.t = threading.Timer(timedev,self.timeCheck) self.t.start() else: print '当前队列已经没有教师' return else: self.t = threading.Timer(10,self.timeCheck) self.t.start()
def __init__(self): self.r1 = __init__.readini() self.t1 = teastartcheckin.teacherStartCheckIn() self.t2 = tearandomcheckin.teacherRandomCheckIn() self.t3 = teamanualcheckin.teacherManualCheckIn() self.s1 = stuautocheckin.stuCheckIn() self.s2 = studelay.stuDelay() self.v1 = viewatanytime.view()
def __init__(self): self.read = readini() # 读取配置文件 self.t_auto_checkin = TeacherAutoCheckIn() # 教师开始签到 self.t_random_checkin = TeacherRandomCheckIn() # 教师随机抽点 self.t_manual_checkin = TeacherManualCheckIn() # 教师手工签到 self.s_checkin = StuCheckIn() # 学生自动签到 self.s_delay = StuDelay() # 学生迟到类 self.s_randomcheckin = StuRandomCheckin() self.import_data = ImportCsvData() self.t_delay = TDelay() self.t_print_sum = TeacherPrintSum() self.s_print_sum = StudentPrintSum()
def stop_checkin(self): """ do the calculation :return: """ if self.timer != None: if readini.List != []: line = readini.List[0] self.manager.manage_action(line[0], line[1]) read = readini() clist = read.List # leaveTime = clist[0] # leaveTimeArray = leaveTime.split('-| | :') # print leaveTime # print leaveTimeArray begin_time = clist[0][3] begin_time_array = re.split('[- :]', begin_time) # print beginTimeArray# 3 4 5 为时分秒 nowtime = time.strftime('%Y-%m-%d %H:%M:%S') stime0 = nowtime.split(" ") stime1 = stime0[1].split(':') hourdev = int(stime1[0]) - int(begin_time_array[3]) minutedev = int(stime1[1]) - int(begin_time_array[4]) seconddev = int(stime1[2]) - int(begin_time_array[5]) # print hourdev # print minutedev # print seconddev # 用第二位教师的开启时间和现有时间作对比dev=(100-(nowtime-t2starttime)) # 目的是计算第二位教师的考勤剩余时间,并赋给计时器 timedevbuffer = abs( hourdev) * 3600 + minutedev * 60 + seconddev timedev = 100 - timedevbuffer print '队首教师剩余时间为', ":", timedev if timedev < 0: return readini.List.pop(0) # 计算后将教师踢出队列 # 先取消上次计时后,再传入新的计时值 self.timer.cancel() self.timer = threading.Timer(timedev, self.time_check) self.timer.start() else: print '当前队列已经没有教师' return else: self.timer = threading.Timer(100, self.time_check) self.timer.start()
def entryList(self, TeacherID, CourseID): ti = Timer() #建立一个Timer计时器的实例 classList = [] # 设置上课的班级列表 with open('InData/courseInfo.csv', 'rb') as courseInfo: reader = csv.reader(courseInfo) count = 0 # 设置下边追加班级时的控制变量 reader.next() for cline in reader: if (cline[0] == str(CourseID)) & (cline[2] == str(TeacherID)): classList.append(cline[3]) count = 1 else: pass if count == 0: print '没有上课的班级!' # exit(0) return False nowtime = time.strftime('%Y-%m-%d %H:%M:%S') messagelist = [TeacherID, CourseID, classList, nowtime] if readini.List: # 列表非空 需要进行判断! for line in readini.List: if (set(classList) & set(line[2])): print "班级已存在" read = readini() s = read.readIni() # 从readIni中得到课程的开始时间和结束时间 stime0 = nowtime.split(" ") stime1 = stime0[1].split(':') stime = stime1[0] + stime1[1] + stime1[2] if (s[0] < stime < s[1]) | (s[2] < stime < s[3]) | (s[4] < stime < s[5]): readini.List.remove(line) readini.List.append(messagelist) print "踢出前一个教师成功,成功进入队列!" else: print "当前班级正在考勤!您无法开启" return False else: readini.List.append(messagelist) ti.stopCheckIn() else: readini.List.append(messagelist) ti.startCheckTime()
def enter_list(self, teacher_id, course_id): """to judging weather the teacher can enter the list or not""" class_list = self.to_first_judge(teacher_id, course_id) # 设置上课的班级列表 if class_list == []: return False nowtime = time.strftime('%Y-%m-%d %H:%M:%S') messagelist = [teacher_id, course_id, class_list, nowtime] if readini.List: # 列表非空要进行判断! for line in readini.List: if line[0] != teacher_id: if set(class_list) & set(line[2]): print "班级已存在" stime = self.get_stime(nowtime) read = readini() s = read.readIni() # 从readIni中得到课程的开始时间和结束时间 begintime = self.get_bagintime(line[3]) # 首先,若是下课时间则可以提出上一位教师 if (s[0] < stime < s[1]) | (s[2] < stime < s[3]) | (s[4] < stime < s[5]) | \ (s[6] < stime < s[7]): # self.s.manage_action(line[0], line[1]) self.append_judge(readini.List, messagelist) print "此时为下课时间,踢出相同班级的教师成功,成功进入队列!" return True # 若为上课时间、则比较节次信息 elif self.judge_sec(begintime) < self.judge_sec(stime): # self.s.manage_action(line[0], line[1]) self.append_judge(readini.List, messagelist) print "此时为上课时间,提出上一节次的教师成功!" return True else: print "当前班级正在考勤、您无法开启!" return False else: readini.List.append(messagelist) return True else: print "教师已经在队列之内" return False else: self.append_message(messagelist) return True